【问题标题】:.net mvc Updated jquery now getting critical error.net mvc 更新的 jquery 现在出现严重错误
【发布时间】:2013-01-24 17:37:02
【问题描述】:

我今天通过 NuGet 更新了 jquery,现在收到以下错误:

JavaScript critical error at line 1, column 11 http://localhost:53779/Scripts/jquery-1.9.0.min.map

SCRIPT1004: Expected ';'

有其他人遇到过这种情况并可以提出解决方案吗?

【问题讨论】:

  • 下载并使用较旧/稳定版本的 jquery。
  • 使用以前版本的 jquery 确实可以解决这个问题,但是,我正在寻找 jquery 1.9.0 的解决方案

标签: jquery asp.net-mvc


【解决方案1】:

我今天偶然发现了这个问题,并认为我应该对此问题进行实际修复。

在我的 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/

【讨论】:

  • @MisterJames 太搞笑了!我一直在使用您建议的修复程序,直到我偶然发现您的网站寻找有关 jquery 迁移的信息。在上面的帖子中,我发现了这个金块。立即观看有关使用 ASP.NET MVC 4 构建和部署网站的视频 :-) 非常感谢您所做的一切!
  • 干杯!很高兴我能帮上忙!
【解决方案2】:

.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

【讨论】:

  • 我删除了 .map 文件,一切都恢复正常了。我尝试按照上述 SO 问题中的建议注释掉参考,但这不起作用。非常感谢。
【解决方案3】:

此问题的另一个可能原因是如果您定义了两个具有相同名称的包(一个脚本,一种样式):

    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 并且会失败。

【讨论】:

    【解决方案4】:

    我搞砸了,因为我剪切和粘贴了错误的东西。我有

    @Scripts.Render("~/Content/DataTables/css")
    

    应该是的

    @Styles.Render("~/Content/DataTables/css")
    

    我应该注意到的另一个赠品。我收到了 javascript 错误,但该文件是一个 css 文件。呵呵!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-14
      • 2013-09-16
      • 2021-09-14
      • 2022-01-21
      • 2012-02-05
      • 1970-01-01
      • 2021-06-25
      相关资源
      最近更新 更多