来自jquery的sourceMappingURL在apache中生成404错误

Sal*_*ali 31 jquery http-status-code-404

浏览apache日志并发现有趣的事情:

当用户访问我包含jquery的任何页面时,apache会尝试获取jquery-xxx.min.map文件并因404错误而失败.这是一个例子:

xxx.xxx.xxx - - [Date:TIME +0000] "GET /js/lib/jquery-1.10.2.min.map HTTP/1.1" 404 3134 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36"
Run Code Online (Sandbox Code Playgroud)

这并不奇怪,因为我显然没有这个min.map文件.我不喜欢这种行为.

查看jquery源代码,我发现了

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

首先,这个sourceMappingURL在评论中,没有其他命中.当我刚删除它时,404错误消失了.

我毫不怀疑来自jquery的人知道他们在做什么,但任何人都可以解释我:

  • 这个sourceMappingURL创建了一些以404结尾的连接是什么意思?

  • 当我删除这条线时,我失去了什么?

我能找到的唯一相关的事情是这个链接,据我所知(如果我错了,请告诉我):

  • 它在IE中产生一些错误(我通过Chrome查看)
  • 它已被弃用(我正在使用最新版本的jQuery)
  • 它用于调试目的(还没有理解为什么调试目的)

Rya*_*ick 31

有几种方法可以消除错误.

  1. 默认情况下,Chrome会启用源地图.您可以通过打开开发人员工具并更改常规设置来禁用此功能.取消选中"启用源映射"选项.这当然不会修复Apache上的错误.

  2. 更改您的网页以使用由jQuery或Google提供的CDN,而不是使用本地版本.这将阻止您的本地Apache在日志中显示该问题.

  3. 或者,您必须重写本地版本的jquery-1.10-2.min.js顶部的注释以停止此错误.否则你需要等待jQuery的补丁.

从:

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

至:

/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license */
Run Code Online (Sandbox Code Playgroud)

sourceMappingURL是一个HTML5功能,在过去几个月中已经发生了一些变化.

  • 作为后续内容,有一个链接可以在jQuery的下载页面上下载(我昨晚没有注意到这一点)地图文件.您也可以将此映射文件放在与Web服务器相同的文件夹中以停止404.[下载jQuery 1.10.2的地图文件](http://code.jquery.com/jquery-1.10.2.min.map) (6认同)