使用mvc4课程的bundle功能时,加载时出现“Uncaught SyntaxError: Unexpected token <”错误。使用
我该如何解决这个错误?或者我能否仅禁用脚本的bundle特性? 解决方案
将bundle名称重命名为不与任何目录匹配。
debug="true"
时,一切正常工作。我该如何解决这个错误?或者我能否仅禁用脚本的bundle特性? 解决方案
将bundle名称重命名为不与任何目录匹配。
debug="true"
时,一切正常工作。在回答这个错误的原因之前,您必须首先确定错误发生的位置。当代码打包时,唯一不同的语法是它被压缩了。一个非常简单的方法是使用 Bundle
而不是 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);
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);
@Scripts.Render
,以指向您的新bundle。当您构建并重新加载时,您将要么继续收到错误,要么不会,然后就会知道哪一半包含有问题的代码。但务必测试两种方式,即在我的示例中缩小thirdParty1
并取消缩小thirdParty2
,反之亦然,以确保没有其他情况发生。您还可能希望保持DevTools或任何浏览器调试器打开,并查看您的bundles的源代码,以确保它们按预期运行。thirdParty1
)移动到未缩小的bundle(thirdParty2
),可以逐个或批量进行,如果您有很多脚本。记得在重新构建时进行重组,注意不要改变脚本的包含顺序。他的解决方案帮了我,将捆绑包重命名为与目录不同的名称。我像这样分组:
@Styles.Render("~/jqueryui")
@Scripts.Render("~/jqueryui")
使用jQuery UI样式进行此操作时似乎存在一个错误。我只是将捆绑包重命名为:
@Styles.Render("~/jqueryuiz")
@Scripts.Render("~/jqueryui")
这个方法对我很有帮助。因此,这些脚本似乎不受影响,类似的捆绑包也是如此。我加载了大约20组捆绑包,这是唯一一个引起问题的。
我的问题: 我在Content文件夹中引用脚本文件,但是我的bundle名称为~Scipts。我将我的bundle重命名为~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"))
@Scripts.Render()
和@Styles.Render()
调用?你是否检查了浏览器控制台以查看返回结果? - CodingIntrigue