5

使用 mvc4 课程的捆绑功能

未捕获的 SyntaxError:意外的令牌 <

在加载。debug="true"一切都像例外一样工作。

我该如何解决该错误,或​​者我可以仅为脚本禁用捆绑功能?

已解决
重命名捆绑包名称以与任何目录不匹配

4

3 回答 3

8

在您回答导致此错误的原因之前,您必须首先弄清楚错误发生在哪里。捆绑时代码语法的唯一区别是它被缩小了。一个非常简单的方法是使用 aBundle而不是 a ScriptBundle

        var thirdParty = new Bundle("~/bundles/thirdParty").Include(
            "~/Scripts/jquery-{version}.js",
            "~/Scripts/bootstrap.js",
            "~/Scripts/jquery-ui-{version}.js",
            "~/Scripts/jquery.mockjson.js",
            "~/Scripts/jQuery.XDomainRequest.js",
            "~/Scripts/knockout-{version}.js"
            );

        thirdParty.Transforms.Clear();

        bundles.Add(thirdParty);

现在,如果您有多个 JavaScript 包,请一一为它们执行此操作,直到您拥有罪魁祸首包。

我发现调试这些问题的唯一方法是将您的捆绑包分成两半以进一步分解:

        var thirdParty1 = new Bundle("~/bundles/thirdParty1").Include(
            "~/Scripts/jquery-{version}.js",
            "~/Scripts/bootstrap.js",
            "~/Scripts/jquery-ui-{version}.js"
            );

        bundles.Add(thirdParty1);

        var thirdParty2 = new ScriptBundle("~/bundles/thirdParty2").Include(
            "~/Scripts/jquery.mockjson.js",
            "~/Scripts/jQuery.XDomainRequest.js",
            "~/Scripts/knockout-{version}.js"
            );

        bundles.Add(thirdParty2);

请注意,我们只禁用了两个捆绑包之一的缩小 - thirdParty1. 确保并更新您的@Scripts.Render以指向您的新捆绑包。当您构建和重新加载时,您将继续收到错误,或者您不会,然后会知道哪一半包含麻烦的代码。但是一定要以两种方式测试它,在我的例子中缩小thirdParty1和缩小thirdParty2,反之亦然,以确保其他事情不会发生。您还可能希望保持 DevTools 或您打开的任何浏览器调试器,并查看捆绑包的源代码以确保它们按预期运行。

如果您有很多脚本,则继续将脚本从缩小的捆绑包(thirdParty1在我的情况下)从未缩小的捆绑包(thirdParty2)中移动,一次一个或一个块。请记住在中间进行重建,并注意不要更改脚本的包含顺序。

这至少应该让你找到有问题的文件——希望搜索“<”能给你答案。

希望有帮助。

于 2013-07-15T18:16:59.297 回答
0

他的解决方案帮助了我,将包重命名为与目录不同。我是这样分组的:

@Styles.Render("~/jqueryui")
@Scripts.Render("~/jqueryui")

使用 jquery UI 样式以这种方式执行此操作时似乎存在错误。我刚刚将捆绑包重命名为:

@Styles.Render("~/jqueryuiz")
@Scripts.Render("~/jqueryui")

这为我解决了问题。所以脚本似乎没有受到这种影响,类似的包也没有,我加载了大约 20 组包,这是唯一引起问题的包。

于 2014-07-13T22:29:18.460 回答
0

我的问题: 我在我的 Content 文件夹中引用了脚本文件,但捆绑包名称为 ~Scipts。我将我的包重命名为 ~DefaultScripts 并解决了我的问题。我不想引用 Scripts 文件夹,但它会去那里而不是我的 Content 文件夹。

  bundles.Add(New ScriptBundle("~/Scripts").Include(
              "~/Content/assets/global/plugins/jquery.min.js",
              "~/Content/assets/global/plugins/bootstrap/js/bootstrap.min.js",
              "~/Content/assets/global/plugins/js.cookie.min.js",
              "~/Content/assets/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js",
              "~/Content/assets/global/plugins/jquery.blockui.min.js",
              "~/Content/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js",
              "~/Content/assets/global/scripts/app.js",
              "~/Content/assets/layouts/layout2/scripts/layout.min.js",
              "~/Scripts/custom.js"))




  bundles.Add(New ScriptBundle("~/DefaultScripts").Include(
              "~/Content/assets/global/plugins/jquery.min.js",
              "~/Content/assets/global/plugins/bootstrap/js/bootstrap.min.js",
              "~/Content/assets/global/plugins/js.cookie.min.js",
              "~/Content/assets/global/plugins/jquery-slimscroll/jquery.slimscroll.min.js",
              "~/Content/assets/global/plugins/jquery.blockui.min.js",
              "~/Content/assets/global/plugins/bootstrap-switch/js/bootstrap-switch.min.js",
              "~/Content/assets/global/scripts/app.js",
              "~/Content/assets/layouts/layout2/scripts/layout.min.js",
              "~/Scripts/custom.js"))
于 2017-04-07T18:51:08.307 回答