簡體   English   中英

捆綁而不是捆綁在ASP.NET MVC中的生產和測試環境中

[英]Bundling and not bundling in production and test environments in ASP.NET MVC

我正在使用ASP.NET Bundling機制:

            BundleTable.Bundles.Add(new ScriptBundle("~/Scripts/Master-js").Include(
                        "~/Scripts/respond.min.js",
                        "~/Scripts/jquery.form.js",
                       "~/Scripts/jquery.MetaData.js",
                        "~/Scripts/jquery.validate.js",
                        "~/Scripts/bootstrap.js",
                        "~/Scripts/jquery.viewport.js",
                        "~/Scripts/jquery.cookie.js"
                     ));

如果構建在發布中,我希望這發生。 如果構建是在調試中,我希望加載未縮小的單個文件,以便調試很容易。

我能夠做到這一點的唯一方法是在我的視圖中寫下以下內容:

    <%  if(HttpContext.Current.IsDebuggingEnabled)
        {
            Response.Write("<script type='text/javascript' src='../../Scripts/respond.min.js'></script>");
            Response.Write("<script type='text/javascript' src='../../Scripts/jquery.form.js'></script>");
            Response.Write("<script type='text/javascript' src='../../Scripts/jquery.MetaData.js'></script>");
            Response.Write("<script type='text/javascript' src='../../Scripts/jquery.validate.js'></script>");
            Response.Write("<script type='text/javascript' src='../../Scripts/bootstrap.js'></script>");
            Response.Write("<script type='text/javascript' src='../../Scripts/jquery.viewport.js'></script>");
            Response.Write("<script type='text/javascript' src='../../Scripts/jquery.cookie.js'></script>");
        }
        else
        {
            Scripts.Render("~/Scripts/Master-js");
        }
%> 

如你所見,我在這里重復一遍。 有沒有更好的辦法?

默認情況下,在視圖上使用Scripts.Render()時,如果應用程序啟用了調試(在web.config中為debug="true" ),則不會捆綁或縮小文件。 此外,還將為該捆綁包中的每個資產呈現單個腳本標記。

您可以使用System.Web.Optimization.BundleTable.EnableOptimizations手動啟用/禁用捆綁和縮小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM