6

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

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

SCRIPT1004: Expected ';'

有没有其他人遇到过这个并可以提出解决方案?

4

4 回答 4

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/

于 2013-02-11T17:12:40.063 回答
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

于 2013-01-28T16:23:05.960 回答
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 并且会失败。

于 2015-12-04T17:54:16.920 回答
0

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

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

应该是

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

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

于 2016-11-15T14:37:24.073 回答