缺少.map资源?

use*_*880 68 html javascript jquery

我最近开始在我的所有项目中遇到这个问题.当我的索引页面加载包含对jquery源文件的引用时,我的控制台会记录以下错误:GET http://localhost:3000/js/lib/jquery-1.10.2.min.map 500 (Internal Server Error).

这根本不会影响我的应用程序,但每当我打开控制台时都会感到非常恼火.有谁知道这是从哪里来的?

编辑:请注意,我没有明确引用.map文件,我只是指向 <script src="js/lib/jquery-1.10.2.min.js"></script>

Bri*_*and 106

jQuery最近开始使用源映射.

例如,让我们看看缩小的jQuery 2.0.3文件的前几行.

/*! jQuery v2.0.3 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license
//@ sourceMappingURL=jquery.min.map
*/
Run Code Online (Sandbox Code Playgroud)

摘自JavaScript源地图简介:

你有没有发现自己希望你能保持你的客户端代码可读性更重要的是可调试的,甚至结合和精缩它,而不会影响性能?那么现在你可以通过源地图的魔力.

基本上,它是一种将组合/缩小文件映射回未构建状态的方法.当您为生产构建时,以及缩小和组合JavaScript文件,您将生成一个源映射,其中包含有关原始文件的信息.当您在生成的JavaScript中查询某个行和列编号时,可以在源地图中执行查找,以返回原始位置.开发人员工具(目前是WebKit每晚构建,谷歌浏览器或Firefox 23+)可以自动解析源地图,使其看起来好像您正在运行未经组合和未组合的文件.

强调我的

它非常有用,只有在用户打开开发工具时才会下载.

删除源映射行,或什么都不做.这不是一个真正的问题.


旁注:您的服务器应该返回404而不是500.如果在生产中发生这种情况,则可能指向安全问题.

  • "...但可以说是否应该为每个用户下载......":实际上,源地图只会由打开开发工具并启用"启用JS源地图"选项的用户下载. (4认同)
  • 谢谢,我更新了答案. (2认同)
  • 在Safari浏览器中,无法加载资源:服务器响应状态为404(未找到)(angular.min.js.map,第0行):导致问题. (2认同)