更新:经过一段时间捆绑工作正常,不知道它是什么)
在我的BundleConfig.cs中,我定义了这些包
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new ScriptBundle("~/bundles/vendor").Include(
"~/Scripts/jquery-{version}.js",
"~/Scripts/bootstrap.js",
"~/Scripts/bootstrap-datetimepicker.js",
"~/Scripts/es6-shim.js",
"~/Scripts/toastr.js",
"~/Scripts/angular.js",
"~/Scripts/angular-route.js",
"~/Scripts/highcharts.src.js",
"~/Scripts/highcharts-ng.js",
"~/Scripts/angular-block-ui.js",
"~/Scripts/angular-translate.js"));
bundles.Add(new ScriptBundle("~/bundles/app").Include(
"~/Scripts/app/app.js",
"~/Scripts/app/directives.js",
"~/Scripts/app/translation.js",
"~/Scripts/app/data.service.js",
"~/Scripts/app/main.controller.js",
"~/Scripts/app/parameters.controller.js",
"~/Scripts/app/schedules.controller.js",
"~/Scripts/app/settings.controller.js",
"~/Scripts/app/subscriptions.controller.js"));
}
在我的Index.cshtml文件中,我有这些添加这些包的序列
@Scripts.Render("~/bundles/vendor")
@Scripts.Render("~/bundles/app")
如果是在web.config
中 <compilation debug="true" targetFramework="4.5">
我有正确的捆绑序列
如果我将debug更改为false
<compilation debug="false" targetFramework="4.5">
序列被破坏,应用程序无效!
为什么会这样?如何解决?
答案 0 :(得分:1)
在一个页面中使用多个Scripts.Render
并不常见,您可以将脚本合并到一个包中。当您在我们使用RenderSection
来满足我们目的的特定视图中处理部分/条件脚本时,可能需要这样做。
您的问题来自于现实,捆绑订单对于带有通配符的名称按字母顺序排列。在您的情况下,在 v endor之前调用 pp
我的第一个解决方案是,如果可能的话,使用一个Scripts.Render
。
第二个解决方案更改调用第二个Scripts.Render
的位置,比如应用脚本,例如在页面底部使用它们或在它们之间使用meta
标记(不要在供应商之后避免订购)。
如果您想确保脚本的顺序正确,请不要使用多个Scripts.Render
。相反,Configure the ordering for single bundle。