捆绑和缩小的脚本顺序混乱

时间:2019-06-12 14:38:53

标签: asp.net-mvc bundling-and-minification

我的脚本和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;注释掉,然后一切正常加载,但是一旦我取消注释,便开始出现错误,找不到某些功能。因此,这使我相信,当我将优化启用为true时,它将使我所有的脚本乱序。

在布局页面的标题中

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

就在身体支架关闭之前

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

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

如果我不使用捆绑和缩小功能,那么每次发布该应用程序时,我都必须始终按ctrl + f5键,这样不好。

如何解决此问题,以免脚本重新排序?

2 个答案:

答案 0 :(得分:1)

RegisterBundles函数中,将以下内容作为第一行:

bundles.IgnoreList.Clear();

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

答案 1 :(得分:1)

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