我看到错误消息关于一个文件,min.map,没有找到:

jQuery的jQuery -1.10.2.min。map正在触发404(未找到)


截图

这是怎么回事?


如果Chrome DevTools报告一个.map文件的404错误(可能是jquery-1.10.2.min。Map, jquery.min.map或jquery-2.0.3.min。首先要知道的是,这只在使用DevTools时被请求。 您的用户将不会碰到这个404。

现在您可以修复这个问题或禁用源地图功能。

解决办法:获取文件

接下来,这很容易解决。转到http://jquery.com/download/,并点击下载对应版本的地图文件链接,您也会希望下载未压缩的文件。

有了映射文件,您就可以通过原始源代码调试缩小后的jQuery,如果您不喜欢处理a和c这样的变量名,这将节省大量时间和挫败感。

更多关于源地图的信息请点击这里:JavaScript源地图介绍

Dodge:禁用源地图

现在,您可以在设置中完全禁用JavaScript源映射,而不是获取文件。如果您不打算在这个页面上调试JavaScript,那么这是一个不错的选择。 使用DevTools右下角的齿轮图标,打开设置,然后:


根据我对浏览器的理解,至少Chrome,默认情况下不会禁用源映射。这意味着应用程序的用户将在默认情况下触发此源映射请求。

您可以通过删除//@ sourceMappingURL=jquery.min来删除源映射。映射你的JavaScript文件。


可以通过删除该行来删除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 */

源映射的目的

Basically it's a way to map a combined/minified file back to an unbuilt state. When you build for production, along with minifying and combining your JavaScript files, you generate a source map which holds information about your original files. When you query a certain line and column number in your generated JavaScript you can do a lookup in the source map which returns the original location. Developer tools (currently WebKit nightly builds, Google Chrome, or Firefox 23+) can parse the source map automatically and make it appear as though you're running unminified and uncombined files. (Read more on this here)


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注释不包含在压缩文件中。


下载地图文件和jQuery的非压缩版本。 把它们和缩小版放在一起: 包括缩小版本到你的HTML: 登录谷歌Chrome浏览器: 阅读JavaScript源映射介绍 熟悉调试JavaScript


在遵循其他答案中的说明后,我需要从地图文件中剥离这个版本,以便为我工作。

例如:重命名

jquery-1.9.1.min.map

to

jquery.min.map


在jQuery 1.11和2.1发布会上宣布,源地图注释将被移除,这样这个问题就不会出现在新版本的jQuery中。

以下是官方公告:

在这个测试版中,我们所做的其中一个改变就是删除了源地图 发表评论。源地图已经被证明是一个非常有问题和令人困惑的 在论坛上产生了大量令人困惑的问题 比如StackOverflow,导致用户认为jQuery本身就是 坏了。

不管怎样,如果你需要使用源映射,它仍然可用:

我们仍然会生成和分发源代码图,但你会的 的末尾需要添加适当的源地图注释 如果浏览器不支持手动关联映射,则缩小文件 文件(目前没有)。如果您生成自己的jQuery文件使用 自定义构建过程中,源地图注释将出现在 缩小文件和地图生成;你可以把它留在里面,然后 使用源地图或将其编辑掉并完全忽略地图文件。

你可以在这里找到更多关于这些变化的细节。


在这里,您可以确认使用jQuery 1.11.0/2.1.0发布后,缩小文件中的源映射注释已被删除。


jQuery 1.11.0/2.1.0的// sourceMappingURL注释不包含在压缩文件中。


如果你想获得不同版本的源地图文件,可以使用这个链接 http://code.jquery.com/jquery-x.xx.x.min.map

相反,x.xx.x输入您的版本号。

注意:一些链接,你得到这个方法,可能是坏的:)


假设你已经检查了文件是否存在于服务器上,这也可能是由于你的web服务器限制了文件类型:

在Apache中,这可以通过<FilesMatch>指令来完成,如果你使用mod_rewrite的话,可以使用RewriteRule。 在IIS中,您需要访问Web。配置文件。


我也遇到过同样的问题。我的原因是Grunt连接了我的JavaScript文件。

我使用了一个;\n作为分隔符,导致源路径映射到404。

所以dev tools在找jquery。min。map;而不是jquery.min.map。

我知道这不是最初问题的答案,但我确信还有其他人具有类似的Grunt配置。