我今天通过NuGet更新了jquery,我现在收到以下错误:
JavaScript critical error at line 1, column 11 http://localhost:53779/Scripts/jquery-1.9.0.min.map
SCRIPT1004: Expected ';'
是否还有其他人遇到此问题并建议解决方案?
答案 0 :(得分:4)
我今天偶然发现了这件事,并认为我应该回答这个问题的实际解决方法。
在我的BundleConfig.cs中,我有以下内容:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.*"));
通配符用于获取最新版本的jQuery,但是,Bundle Builder也在拾取地图文件。
通过更新BundleConfig.cs,如下所示:
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-{version}.js"));
这解决了这个问题。 {version}标记是与文件进行最佳匹配的替换。因此,现在代替添加的所有文件,您将获得要求捆绑和缩小的库的匹配。
此修复程序的来源位于http://jameschambers.com/2013/01/jquery-script-map-causing-critical-error-in-jquery-1-9-0/
答案 1 :(得分:3)
.map文件用于调试(例如,Chrome中有一些新功能可让您“映射”到源的非缩小版本。)
如果你正在使用捆绑/缩小,你可以链接到该文件的完整版本,这样你就可以安全地删除(或移动).map文件,代码将再次运行,你仍然可以通过MVC框架。
作为一个说明,我假设你没有在这里做任何jQuery库工作,并且你当前不需要在浏览器中调试时访问非缩小版本。通常情况下,我是jQuery的“消费者”,并且往往不会调查黑盒子。
有关更多信息,Elijah有一些关于源地图的重要信息以及如何使用它。
http://www.elijahmanor.com/2013/01/the-magic-of-jquery-source-map.html
同样,如果您想实施临时解决方法来解决地图缩小问题(可能是相关的),您可以查看此SO问题:jquery 1.9.0 and modernizr cannot be minified with the ASP.NET Web Optimization Framework
答案 2 :(得分:1)
此问题的另一个可能原因是,如果您定义两个具有相同名称的包(一个脚本,一个样式):
bundles.Add(new ScriptBundle("~/bundles/bootstrap")
.Include("~/Scripts/bootstrap.js"));
bundles.Add(new StyleBundle("~/bundles/bootstrap")
.Include("~/Content/bootstrap.css"));
然后,在页面中,执行以下操作:
<%=Scripts.Render("~/bundles/bootstrap")%>
它将尝试将css呈现为javascript并将失败。
答案 3 :(得分:0)
我搞砸了,因为我剪掉并粘贴了错误的东西。我有
@Scripts.Render("~/Content/DataTables/css")
应该是
@Styles.Render("~/Content/DataTables/css")
我应该注意到的另一个赠品。我收到了javascript错误,但该文件是一个css文件。卫生署!