捆绑和缩小脚本乱序

Bundle and minification has scripts out of order

我有我的脚本和 css 捆绑包

bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
            "~/Scripts/jquery-{version}.js"));

bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
            "~/Scripts/jquery.validate*"));

bundles.Add(new ScriptBundle("~/bundles/initialization").Include(
            "~/Scripts/Custom/Common/CustomEventURLS.js",
            "~/Scripts/Custom/Common/CommonFunctions.js",
            "~/Scripts/Custom/Common/GlobalVariables.js"
            ));

bundles.Add(new ScriptBundle("~/bundles/custom").Include(
    "~/Scripts/Custom/kendoNotification.js",
    "~/Scripts/Custom/Common/CommonControlsJS.js",
    "~/Scripts/Custom/Reporting/Reporting.js",
    "~/Scripts/Custom/Common/Base64ToBinary.js",
    "~/Scripts/Custom/Plugins/Custom_Plugins.js",
    "~/Scripts/2c_Combined_JS.js",
    "~/Scripts/2c_Administration_JS.js",
    "~/Scripts/Custom/Administration/FirstTimeLogin.js"
    ));

bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
            "~/Scripts/modernizr-*"));

bundles.Add(new ScriptBundle("~/bundles/bootstrap").Include(
          "~/Scripts/bootstrap.min.js",
          "~/Scripts/respond.js"));

//BundleTable.EnableOptimizations = true;

如果我有 BundleTable.EnableOptimizations = true;注释掉然后一切正常加载,但是一旦我取消注释它然后我开始收到关于它找不到某些功能的错误。所以这让我相信,当我启用优化为真时,它会使我所有的脚本乱序。

在我的布局页面header中

@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/bootstrap")
@Scripts.Render("~/bundles/initialization")

并且就在 body 大括号结束之前

@Scripts.Render("~/bundles/custom")

自定义位于底部的原因是因为我需要在这些脚本触发之前加载 dom。

如果我不使用捆绑和缩小,那么每次发布应用程序时,我都必须始终执行 ctrl+f5,这并不好。

我该如何解决这个问题,以免我的脚本被重新排序?

RegisterBundles 函数中添加以下内容作为第一行:

bundles.IgnoreList.Clear();

还要确保所有 min 文件都是有效文件(css 和 js)。

查看并查看 Matthew Jones 撰写的 Bundling and Minification - ASP.NET MVC Demystified,他是我最喜欢的 Web 开发人员之一。