jQuery的jquery-1.10.2.min.map触发404(未找到)


1061

我看到min.map未找到有关文件的错误消息:

GET jQuery的jquery-1.10.2.min.map触发404(未找到)


屏幕截图

在此处输入图片说明

这是哪里来的?


1
为了解决我的问题,我没有遵循此答案的详细信息。我的网站仅使用js文件,而不使用地图。我只是清除了浏览器缓存以解决此问题,然后重新启动了浏览器。当我开始在生成的ASP.NET通用处理程序(ExtDirectProxy.ashx)上收到500 Internal Server错误并开始将数据传递给jquery加载页面时,就开始发生这种情况。 stackoverflow.com/questions/26135251/...
百战天龙

1
更改所需的版本,然后从URL下面下载并重命名为code.jquery.com/jquery-1.11.1.min.map
Iman

1
这会减慢下载速度,因为即使不需要浏览器,浏览器也会下载它。
昆汀

Answers:


1271

如果Chrome DevTools报告.map文件的404错误(可能是jquery-1.10.2.min.mapjquery.min.mapjquery-2.0.3.min.map,但可能会发生任何事情),首先要知道的是,只有在使用DevTools时才需要此请求。 您的用户不会点击此404。

现在,您可以解决此问题或禁用源地图功能。

修复:获取文件

接下来,这很容易解决。转到http://jquery.com/download/,然后单击您所用版本的“ 下载地图文件”链接,您还需要下载未压缩的文件。

在此处输入图片说明

将地图文件放置在适当的位置后,您可以通过原始资源调试缩小的jQuery,如果您不喜欢像a和这样的变量名,这将节省很多时间和挫败感c

有关源映射的更多信息,请参见:JavaScript源映射简介。

道奇:禁用源地图

您可以在设置中暂时禁用JavaScript源映射,而不是获取文件。如果您从未打算在此页面上调试JavaScript,那么这是一个不错的选择。使用DevTools右下方的cog图标打开设置,然后: 在此处输入图片说明


9
我对此表示赞成(即使您回答了自己的问题),因为我今天第一次注意到这一点。试图找出答案让我有些疯狂,然后我注意到我正在处理的2个站点上出现相同的404错误,并且想到了“启用源地图”选项...这就是我观察您的开发工具所得到的交谈并立即打开所有内容。我将介绍您提供的文档。
2013年

47
我有两件事要补充。1)下载一个jQuery映射文件是不够的,您还需要一个未压缩的源代码(否则调试时会看到一个空的jquery-*。js文件)。2)如果您要从CDN之一加载jQuery,则所有三个文件(map,压缩和未压缩的源代码)都位于同一位置,您可以立即开始调试。
2013年

42
我不确定应该从DevTools中为此提出404,这会让人们感到困惑。尽管如此,至少我现在知道如何处理它。也@ adam-asdf,只是为了让您知道,我们积极鼓励您回答自己的问题…… meta.stackexchange.com/questions/17845
Greg

12
我同意@Greg。在控制台中针对源映射(在代表Chrome / DevTools的请求)中引发404错误似乎不是很有帮助。尤其是因为许多人甚至不了解为什么(或从何处)请求该资源。
idbehold

9
@ SpYk3HH完全可以接受您自己的答案,实际上不建议编辑第三方库。.因为如果您要更新内容,您会忘记更改了什么。
Lipis

275

您可以通过删除行来删除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每晚构建的版本,Google Chrome或Firefox 23+)可以自动解析源地图,并使其看起来好像您正在运行未缩小和未合并的文件。(了解更多关于此这里


抱歉,我的意思是:在任何情况下我都需要此行吗?
Flion

6
仅在需要调试缩小的JS源代码时才需要。在此处查看第二段以了解更多详细信息html5rocks.com/en/tutorials/developertools/sourcemaps
kiranvj 2013年

5
希望我在选择答案之前已经看到了这一点。这要容易得多,应该是主要的答案。op的自我回答对获取信息很有帮助,但绝对是次要的,因为这是在谷歌搜索如何摆脱这种烦恼时出现的第一个问题。
SpYk3HH 2013年

13
编辑库以消除此类问题不是一个好选择。每次更新jquery时,此行都会再次出现。
Arman P.

6
截至2014年1月,jQuery发行版中未包含Sourcemap参考
Dan Esparza 2014年

44

正如在jQuery 1.11.0/2.1.0 Beta 2 Released源地图中宣布的那样,注释将被删除,因此该问题不会出现在较新版本的中jQuery

这是官方公告:

我们在此Beta中进行的更改之一是删除了源地图注释。对于开发人员而言,源地图已被证明是一个非常棘手的问题,它在诸如StackOverflow之类的论坛上产生了数十个令人困惑的问题,并导致用户认为jQuery本身已损坏。

无论如何,如果您需要使用源地图,它仍然可用:

我们仍将生成和分发源地图,但是如果浏览器不支持手动关联地图文件(当前,不支持),则需要在缩小文件的末尾添加适当的源地图注释。如果您使用自定义构建过程生成自己的jQuery文件,则源地图注释将出现在缩小的文件中并生成地图。您可以保留它并使用源地图,也可以编辑它并完全忽略地图文件。

在这里,您可以找到有关更改的更多详细信息。


在这里,您可以找到确认,其中jQuery 1.11.0/2.1.0 Released缩小文件中的源地图注释已被删除。


1
但是,如果不是因为这种混乱,我将永远不会在这里查找并知道地图的存在。我一直在手动向要查看的缩小文件中添加空格。
icedwater

1
Chrome浏览器有一个按钮,可以漂亮地格式化缩小的文件。也可以使用在线美化工具。
Quentin


16

jQuery的新版本需要此文件http://code.jquery.com/jquery-1.10.2.min.map

http://www.html5rocks.com/zh-CN/tutorials/developertools/sourcemaps/上介绍了此文件的可用性

更新:

jQuery 1.11.0 / 2.1.0

// sourceMappingURL注释不包含在压缩文件中


3
不,我不认为jQuery“需要”该文件。仅当您要在调试时使用源映射时才需要它,在这种情况下,同时需要src文件和映射文件。
styfle 2014年

1
嗨@styfle,需要在1.10.2版本的源代码映射,但是从版本1.11.0 / 2.1.0必须手动添加它,这是因为许多用户受到影响通过在浏览器控制台产生的误差
安德雷斯组合通道

9

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

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



8

按照其他答案中的说明进行操作后,我需要从地图文件中删除版本,以使其对我有用。

示例:重命名

jquery-1.9.1.min.map

jquery.min.map


6

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

我使用a ;\n作为分隔符,这导致源映射的路径为404。

因此,开发人员工具正在寻找jquery.min.map;而不是jquery.min.map

我知道这不是原始问题的答案,但是我敢肯定还有其他类似的Grunt配置。


5

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.