加载 ASP.NET 网页时缺少 Underscore.js 的 Javascript“.map”文件 [重复]
Posted
技术标签:
【中文标题】加载 ASP.NET 网页时缺少 Underscore.js 的 Javascript“.map”文件 [重复]【英文标题】:Missing Javascript ".map" file for Underscore.js when loading ASP.NET web page [duplicate] 【发布时间】:2013-08-28 02:04:55 【问题描述】:我有一个网页,它是在 Azure 上运行的 ASP.NET 网站的一部分。现在已经运行了很长一段时间了。出乎意料的是,我突然在尝试为 Underscore.js 下载“.map”的浏览器时遇到问题。我做了一些阅读,显然 JQuery 创建了“.map”文件作为 javascript 源文件(“.js”)的调试辅助工具。但是,如果我查看我网站的 Scripts 目录,我会发现这只发生在一些 JQuery 源文件中,而不是全部,我不确定模式是什么。
但是,为什么浏览器会尝试为不属于 JQuery 的 Underscore.js 加载“地图”文件?另外,为什么会突然开始发生这种情况?很久以前,我将 Underscore.js 添加到网页中,以前从未遇到过这个问题。
当我查看 Chrome 调试器控制台选项卡时,我得到的确切错误是:
GET http://myazureapp.cloudapp.net/Scripts/underscore-min.map 404(未找到)脚本/underscore-min.map:1
【问题讨论】:
【参考方案1】:您遇到的是source mapping。这允许您在处理缩小的 JS 文件时在浏览器的开发人员工具中使用可读代码进行调试。
缩小版的下划线在文件末尾有这一行:
//# sourceMappingURL=underscore-min.map
您的浏览器的开发者工具会在遇到此行时尝试下载underscore-min.map
。
如果你想摆脱错误,要么:
-
从
underscore-min.js
中删除该行
将underscore-min.map 和underscore.js 添加到您的项目中。
【讨论】:
由于我不想接触源代码(下次升级时会丢失),是否有任何 grunt 配置来强制使用不同的名称而不是“underscore-min.map”?或者其他更简单的方法而不是手动更改代码? @lubosdz 您是否尝试过答案中的第 2 点?就我而言,我只是创建了一个与原始文件同名但扩展名为 .map 而不是 .js 的附加空文件(例如 foo.min.js => add empty foo.min.map)。这使浏览器保持愉快,并且不会影响源代码或更新。以上是关于加载 ASP.NET 网页时缺少 Underscore.js 的 Javascript“.map”文件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
提交时 ASP.NET jQuery 重新加载元素(Ajax POST/GET)