我看到关于一个文件min.map
的错误信息,没有找到。
GET jQuery'的jquery-1.10.2.min.map引发了404(未找到)。
这是从哪里来的?
如果Chrome DevTools为一个.map文件(可能是jquery-1.10.2.min.map
,jquery.min.map
或jquery-2.0.3.min.map
,但也可能发生在任何情况下)报告404,首先要知道这只是在使用DevTools时的请求。
你的用户不会遇到这个404.。
现在你可以解决这个问题或者禁用sourcemap功能。
接下来,这是一个简单的修复。前往http://jquery.com/download/,点击你的版本的下载地图文件链接,你也要下载未压缩的文件。
在此输入图片描述]1 。
有了地图文件,你就可以通过原始源码来调试你的minified jQuery,如果你不喜欢处理像a
和c
这样的变量名,这将节省大量的时间和挫折感。
更多关于源码图的信息请看这里。An Introduction to JavaScript Source Maps
你可以选择在设置中完全禁用JavaScript源码图,而不是获取这些文件。如果你从不打算在这个页面上调试JavaScript,这是一个不错的选择。 使用DevTools右下角的齿轮图标,打开设置,然后。 在这里输入图片描述]2 !
你可以通过删除这一行来移除404
//@ sourceMappingURL=jquery-1.10.2.min.map
从你的jQuery文件的顶部部分。
jQuery文件的顶部部分将看起来像这样。
/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery-1.10.2.min.map
*/
只要把它改成
/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license */
基本上,它是一种将合并/简化的文件映射到未构建状态的方法。当你为生产而构建时,在对你的JavaScript文件进行最小化和组合的同时,你会生成一个源码图,其中包含了关于你的原始文件的信息。当你在生成的JavaScript中查询某个行和列的编号时,你可以在源地图中进行查询,从而返回原始位置。开发者工具(目前是WebKit nightly builds、Google Chrome或Firefox 23+)可以自动解析源码图,并使其看起来就像你在运行未分化和未合并的文件。 (阅读更多相关内容这里)
在 "jQuery 1.11.0/2.1.0 Beta 2 Released "中宣布,源码图注释将被删除,所以这个问题不会出现在新版本的 "jQuery "中。
以下是官方公告。
在这个测试版中,我们所做的变化之一是删除了源码图
评论。 事实证明,源码图是一个非常棘手和令人费解的问题。
的东西给开发者,在论坛上产生了几十个困惑的问题。
像StackOverflow一样,并导致用户认为jQuery本身是 坏了。
无论如何,如果你需要使用源地图,它仍然可以使用。
我们仍然会生成和分发源码图,但是你会发现
需要在末尾添加适当的源码图注释。
如果浏览器不支持手动关联map
文件(目前没有)。 如果你自己生成jQuery文件,使用
在自定义构建过程中,源码图注释将存在于
minified文件和地图生成。 你可以不使用它,而使用 >.使用sourcemaps或者编辑掉,完全忽略地图文件。 使用sourcemaps或者编辑掉它,完全忽略地图文件。
在这里][1]你可以找到更多关于变化的细节。
这里][2]你可以确认,在jQuery 1.11.0/2.1.0 Released
中,minified文件中的source-map注释被删除了。
[1]: http://blog.jquery.com/2013/11/15/jquery-1-11-02-1-0-beta-2-released/ [2]: http://blog.jquery.com/2014/01/24/jquery-1-11-and-2-1-released/
下载][1]地图文件和jQuery的未压缩版本。 把它们和minified版本放在一起。 ![JavaScript][2]
在您的HTML中加入minified版本。 ![HTML][3]
在谷歌浏览器中检查。 !"谷歌浏览器"[4]
阅读[JavaScript源码图介绍][5]。
熟悉[调试JavaScript][6]。
[1]: http://jquery.com/download/ [2]: http://i.stack.imgur.com/HFX44.png [3]: http://i.stack.imgur.com/yWZ2b.png [4]: [4]:http://i.stack.imgur.com/BeLYF.png [5]: http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/ [6]: https://developers.google.com/chrome-developer-tools/docs/javascript-debugging
新版本的jQuery需要这个文件[http://code.jquery.com/jquery-1.10.2.min.map][1] 。
该文件的可用性在此描述[http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/][2]
[1]: http://code.jquery.com/jquery-1.10.2.min.map [2]: http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/
更新:
jQuery 1.11.0/2.1.0。
// sourceMappingURL注释 不包含在压缩文件中。
根据我对浏览器的理解,至少是Chrome,它默认不会禁用源映射。这意味着你的应用程序的用户将默认触发这种源映射请求。
你可以通过删除你的JavaScript文件中的//@ sourceMappingURL=jquery.min.map
来移除源映射。
我也遇到了同样的问题。 对我来说,原因是[Grunt][1]连接了我的JavaScript文件。
我使用了一个;\n
作为分隔符,这导致通往源映射的路径为404。
所以开发工具在寻找jquery.min.map;
而不是jquery.min.map
。
我知道这不是最初问题的答案,但我相信还有其他人有类似的Grunt配置。
[1]: http://gruntjs.com/
假设你'已经检查了文件确实存在于服务器上,这也可能是由你的Web服务器限制哪些文件类型被服务造成的。
1:
[2]: http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule [3]: http://www.iis.net/configreference/system.webserver/security/requestfiltering/fileextensions