【发布时间】:2013-08-24 06:58:34
【问题描述】:
我看到有关文件 min.map 的错误消息,找不到:
GET jQuery 的 jquery-1.10.2.min.map 正在触发 404(未找到)
截图
这是从哪里来的?
【问题讨论】:
标签: javascript jquery google-chrome-devtools
我看到有关文件 min.map 的错误消息,找不到:
GET jQuery 的 jquery-1.10.2.min.map 正在触发 404(未找到)
这是从哪里来的?
【问题讨论】:
标签: javascript jquery google-chrome-devtools
如果 Chrome DevTools 报告 .map 文件的 404(可能是 jquery-1.10.2.min.map、jquery.min.map 或 jquery-2.0.3.min.map,但任何事情都可能发生),首先要知道的是,这仅在使用 DevTools 时才会请求。
您的用户不会点击此 404。
现在您可以修复此问题或禁用源映射功能。
接下来,这是一个简单的修复。前往http://jquery.com/download/ 并点击您的版本的下载地图文件链接,您还需要下载未压缩的文件。
有了映射文件,您就可以通过原始源代码调试缩小的 jQuery,如果您不喜欢处理像 a 和 c 这样的变量名,这将节省大量时间和挫败感。
更多关于源地图的信息:An Introduction to JavaScript Source Maps
您现在可以在设置中完全禁用 JavaScript 源映射,而不是获取文件。如果您从不打算在此页面上调试 JavaScript,这是一个不错的选择。 使用 DevTools 右下角的齿轮图标打开设置,然后:
【讨论】:
您可以通过删除该行来删除 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+)可以自动解析源映射并使其看起来好像您正在运行未压缩和未组合的文件。 (阅读更多here)
【讨论】:
正如jQuery 1.11.0/2.1.0 Beta 2 Released 中所宣布的,源地图注释将被删除,因此该问题不会出现在jQuery 的较新版本中。
以下是官方公告:
我们在此测试版中所做的更改之一是删除源地图 评论。源图已被证明是一个非常有问题和令人费解的问题 开发人员的事情,在论坛上产生了许多令人困惑的问题 像 StackOverflow 并导致用户认为 jQuery 本身是 坏了。
不管怎样,如果你需要使用源映射,它仍然可用:
我们仍会生成和分发源地图,但您会 需要在末尾添加适当的 sourcemap 注释 如果浏览器不支持手动关联地图,则缩小文件 文件(目前没有)。如果您使用生成自己的 jQuery 文件 自定义构建过程,源映射注释将出现在 缩小文件并生成地图;你可以把它留在里面 使用 sourcemaps 或编辑它并完全忽略地图文件。
Here您可以找到有关更改的更多详细信息。
Here 您可以确认使用jQuery 1.11.0/2.1.0 Released 已删除缩小文件中的源映射注释。
【讨论】:
Download 地图文件和 jQuery 的未压缩版本。
把它们和缩小版放在一起:
在您的 HTML 中包含缩小版:
登录谷歌浏览器:
【讨论】:
新版本的jQuery需要这个文件http://code.jquery.com/jquery-1.10.2.min.map
这里描述了这个文件的可用性http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/
更新:
jQuery 1.11.0/2.1.0
// sourceMappingURL 注释不包含在压缩文件中。
【讨论】:
如果你想获得不同版本的源地图文件,你可以使用这个链接 http://code.jquery.com/jquery-x.xx.x.min.map
取而代之的是 x.xx.x 输入你的版本号。
注意:通过此方法获得的某些链接可能会损坏:)
【讨论】:
据我了解,至少 Chrome 浏览器默认不会禁用源映射。这意味着您的应用程序的用户将默认触发此源映射请求。
您可以通过从 JavaScript 文件中删除 //@ sourceMappingURL=jquery.min.map 来移除源映射。
【讨论】:
按照其他答案中的说明进行操作后,我需要从地图文件中删除版本才能为我工作。
示例:重命名
jquery-1.9.1.min.map
到
jquery.min.map
【讨论】:
我遇到了同样的问题。我的原因是 Grunt 连接我的 JavaScript 文件。
我使用 ;\n 作为分隔符,导致源映射的路径为 404。
所以开发工具正在寻找 jquery.min.map; 而不是 jquery.min.map。
我知道这不是原始问题的答案,但我确信还有其他具有类似 Grunt 配置的人。
【讨论】:
jQuery 1.11.0/2.1.0 //sourceMappingURL 注释不包含在压缩文件中。
【讨论】:
假设您已检查文件实际上存在于服务器上,这也可能是由于您的网络服务器限制了所提供的文件类型:
【讨论】: