4

我使用ASP.NET捆綁機制:捆綁和不捆綁在生產和測試環境中的ASP.NET MVC

  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"); 
     } 
%> 

正如你所看到的,我在這裏重複自己。有沒有更好的辦法?

+4

如果在調試模式下運行的網站,並使用'Scripts.Render(「〜/腳本/主JS」)手動啓用/禁用捆綁和縮小它應該有非縮小版本,每個版本都有獨立的腳本標記。 –

+0

@StevenV,如果您將您的評論添加爲anser,我會將其標記爲正確。非常感謝您的幫助。 – Barka

回答

7

默認情況下,在您的視圖上使用Scripts.Render()時,如果應用程序啓用了調試(web.config中的debug="true"),則文件不會被捆綁或縮小。此外,還會爲該捆綁中的每個資源呈現單個腳本標記。對你的看法`;

您可以通過使用System.Web.Optimization.BundleTable.EnableOptimizations