1

在我们的应用程序(网络和移动)中,我们使用 Google CDN 或普通标签加载 jQuery。这会从与请求的 jQuery 文件 ('/assets/js') 相同的目录中正确加载请求的源映射 (.map) 文件。

但是,我们也使用 Ajax 来加载特定的 JS 文件,其中之一是 jQuery Mobile。因为 jQuery Mobile 是由 Ajax 加载的,出于某种原因,它会尝试从根目录加载 .map 文件,而不是从“assets/js”目录加载。

我知道简单的解决方案是将 .map 文件放入根目录以消除烦人的 404 错误(或在 Chrome 中打开源映射),但我想了解为什么在通过 Ajax 加载 JS 文件时会发生这种情况.

任何想法为什么会发生这种情况,以及如何克服它?

4

1 回答 1

3

与之前类似的问题:

错误“找不到 jquery-2.0.2.min.map”

从 jQuery 1.9 开始,我们还提供了可用的 sourcemap 文件,可用于在支持 sourcemap 的浏览器(如 Google Chrome)中调试压缩文件。用户运行 jQuery 不需要映射文件,它只是改善了开发人员的调试器体验。

因此,只要您在 Chrome 中看到它,这只是为了您的利益!

但是,要回答为什么从 AJAX 加载时会发生这种情况,我猜这是因为它相对引用了源映射,并且您的 ajax 是从服务器/文档根目录上的页面调用的。

于 2013-08-28T16:25:59.050 回答