【问题标题】:Missing .map resource? [duplicate]缺少 .map 资源? [复制]
【发布时间】:2013-09-01 05:40:51
【问题描述】:

我最近开始在我的所有项目中遇到这个问题。当我的索引页面加载包含对 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>

【问题讨论】:

    标签: javascript jquery html


    【解决方案1】:

    jQuery 最近开始使用源映射。

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

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

    摘自Introduction to JavaScript Source Maps

    您是否曾经发现自己希望可以保留客户端 代码可读,更重要的是可调试,即使你已经 合并并缩小它,而不影响性能?那么现在你 可以通过源地图的魔力。

    基本上,这是一种将组合/缩小文件映射回 未建状态。当您为生产而构建时,以及缩小和 结合您的 JavaScript 文件,您会生成一个源映射,其中包含 有关您的原始文件的信息。当你查询某一行时 和生成的 JavaScript 中的列号,您可以在其中进行 查找 返回原始位置的源地图。开发者工具 (目前 WebKit nightly builds、Google Chrome 或 Firefox 23+)可以 自动解析源映射并让它看起来好像你是 运行未压缩和未合并的文件。

    强调我的

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

    解决方案

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


    附注:您的服务器应该返回 404,而不是 500。如果在生产中发生这种情况,它可能表明存在安全问题。

    【讨论】:

    • "...但是否应该为每个用户下载它是有争议的..." :实际上,源地图只会由打开其开发工具并具有“启用”的用户下载JS 源映射”选项已启用。
    • 谢谢,我更新了答案。
    • 在 Safari 浏览器中,加载资源失败:服务器响应状态为 404(未找到)(angular.min.js.map,第 0 行):导致问题。
    • 我的问题是为什么只有在 Safari 中才会出现这个问题?其他浏览器不会出现这样的问题。
    【解决方案2】:

    我和你有过类似的经历。我有 Denwer 服务器。当我加载我的 http://new.new 本地站点时,在 Chrome 中的 index.php 中不使用通过脚本 src jquery.min.js 文件,我在控制台中收到错误 500 jquery.min.map。我简单地解决了这个问题——我在 Chrome 中禁用了扩展 Wunderlist,瞧——我再也没有看到这个错误了。虽然,不,我再次发现了这个错误 - 当 Wunderlist 再次打开时。因此,请检查您的扩展程序并尝试禁用所有扩展程序或其中一些或一个一个。祝你好运!

    【讨论】:

    • 这不是一个准确的答案!看到这个link
    • 这实际上不是答案。
    • 如果您想寻求答案,也许您应该发布您自己的问题,因为您在这里的回复被视为答案。
    猜你喜欢
    • 1970-01-01
    • 2011-03-09
    • 1970-01-01
    • 2014-12-19
    • 2010-10-17
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多