0

我正在使用 webrick 在开发模式下运行我的 rails 应用程序。该页面包含 4-5 个 javascript 文件,这些文件也由同一个 webrick 实例提供服务。

当我在 ie6 上加载页面时,似乎 javascript 文件在前几行之后被截断 - 谁能解释一下?例如,如果页面包含此脚本标签:

<script type="text/javascript" src="http://myserver:3200/javascripts/jquery.js"></script>

当页面在 ie6 中加​​载时,它会引发 javascript 语法错误,并且 Visual Web Developer (VWD) 允许我打开加载的 jquery.js 文件,它只显示前 30 行,然后就停止了。

从运行 ie6 的同一台机器上,我尝试使用 curl 加载相同的 jquery.js 文件:

% curl --verbose "http://myserver:3200/javascripts/jquery.js"
* About to connect() to myserver port 3200 (#0)
*   Trying xx.xx.xx.xx... connected
* Connected to myserver (xx.xx.xx.xx) port 3200 (#0)
> GET /javascripts/jquery.js HTTP/1.1
> User-Agent: curl/7.16.3 (i686-pc-cygwin) libcurl/7.16.3 OpenSSL/0.9.8j zlib/1.2.3 libssh2/0.15-CVS
> Host: myserver:3200
> Accept: */*
> 
< HTTP/1.1 200 OK
< Connection: close
< Date: Thu, 14 May 2009 21:35:09 GMT
< Content-Length: 
< Last-Modified: Wed, 13 May 2009 20:38:23 GMT
< Content-Type: application/javascript
< 
* Closing connection #0

因此,通过 curl 访问页面时,我没有从服务器返回任何内容。与 wget 相同。

但是,如果我加载页面,甚至是 firefox 或 chrome 中的单个 javascript 文件,它加载完整的东西就好了。所以 webrick 和 ie6 之间存在一些奇怪的交互,与 curl/wget 相同。我尝试的另一项测试:

% telnet myserver 3200
GET /javascripts/jquery.js HTTP/1.1
Accept: */*

HTTP/1.1 200 OK
Connection: close
Date: Thu, 14 May 2009 21:43:01 GMT
Content-Length:
Last-Modified: Wed, 13 May 2009 20:38:23 GMT
Content-Type: application/javascript

/*!
 * jQuery JavaScript Library v1.3.2
....

这有效,返回了完整的文件内容。我不知道为什么它不能在 ie6/curl/wget 中加载。有什么建议么?

4

2 回答 2

0

Content-Length标题可能是罪魁祸首。我会集中精力找出 Webrick 没有返回内容长度的原因。

于 2009-05-14T21:58:56.747 回答
0

嗯...“gem install mongrel”,然后重新启动脚本/服务器,突然就可以了。显然这是一个 webrick 问题,通过使用 mongrel 来解决。

于 2009-05-14T22:32:59.583 回答