这是我在Windows和Mac上遇到的一个问题,已经有好几个月了,这让我发疯了。每当我插入“debugger”指令或在Safari脚本控制台中设置断点时,超过一半的时间代码在应该的地方中断,但代码视图是空的;一些JS文件也是空的,但不是全部。控制台告诉我所处的行,并正确显示调用堆栈,另外我还可以单步执行代码。我就是看不到剧本。我尝试刷新我的缓存,禁用缓存,修改JS文件(可能是因为当时编译了代码)。似乎没有什么帮助。我知道如果我刷新了足够的调试器(右键单击并“重新加载”),最终我会看到我的脚本。但这是一个耗时的过程。我会使用不同的浏览器,但在这种情况下我实际上需要使用Safari。
有一件事可能是一个因素,那就是我嵌套函数,并将匿名函数赋给变量(laDouglasCrockford)。其他人有这个问题吗?有人有解决办法吗?
[编辑]我刚注意到,当文件从远程服务器发出时,它显示得很好。不过,我的主要逻辑文件是从虚拟主机的本地灯堆栈中出来的,它们都是空白的。再次,他们最终会出现。也许这是阿帕奇的东西?
[编辑]这似乎与其他地方写的问题有关:例如
"Resource interpreted as other but transferred with MIME type application/javascript"
. 问题是我已经检查了我的HTTP头,
<meta>
标签和我的
<script>
标记以确保mime类型一致。
根据curl的说法,当下拉JS文件时,我的HTTP头是:
< HTTP/1.1 200 OK
< Date: Fri, 21 May 2010 13:04:42 GMT
< Server: Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8l DAV/2 PHP/5.3.1
< Last-Modified: Fri, 21 May 2010 08:48:15 GMT
< ETag: "dda3a6-2214-48716c07891c0"
< Accept-Ranges: bytes
< Content-Length: 8724
< Cache-Control: no-cache
< Content-Type: application/x-javascript
…my index.html的头部有:
<meta http-equiv="content-script-type" content="application/x-javascript">
…我这样调用JS文件:
<script type="application/x-javascript" src="Application.js"></script>
我在Safari的资源窗口中看到的警告是:
Resource interpreted as other but transferred with MIME type application/x-javascript
阿帕奇似乎做得很好!我将把它作为一个Safari bug提交,但它似乎只在我的本地服务器上发生。