2012-09-24 82 views
10

特別是,我想在已經縮小腳本的MVC 4中創建一個ScriptBundle,並返回這個相同的Bundle,無論項目是否在Debug中。ASP.NET MVC 4 ScriptBundle返回空

我的web項目引用了MVC Telerik Grid NuGet包。在那個包裏,Telerik只提供縮小的JS文件。捆綁代碼如下。

 // telerik scripts 
     bundles.Add(new ScriptBundle("~/scripts/bundles/telerik").Include(
      "~/Scripts/2012.1.214/telerik.common.min.js", 
      "~/Scripts/2012.1.214/telerik.textbox.min.js", 
      "~/Scripts/2012.1.214/telerik.calendar.min.js", 
      "~/Scripts/2012.1.214/telerik.datepicker.min.js", 
      "~/Scripts/2012.1.214/telerik.grid.min.js", 
      "~/Scripts/2012.1.214/telerik.grid.filtering.min.js")); 

其他ScriptBundles運行良好,但是當我的項目試圖引用這個包,請求顯示爲:scripts/bundles/telerik?v=返回什麼。

如果我設置BundleTable.EnableOptimizations = true,那麼它會返回ScriptBundle並引用特定的版本,但是此解決方案是不可接受的。

我不想強行設置BundleTable.EnableOptimizations = true,因爲我希望所有其他Bundle在適當的時候返回非縮小版本。

任何人都有類似的經歷,如果是這樣,那麼解決方案是什麼?

回答

16

我覺得你有同樣的問題,請看看這個鏈接:mvc4 bundler not including .min files

要麼改名.min.js到的.js或者做類似:

public static void AddDefaultIgnorePatterns(IgnoreList ignoreList) 
    { 
     if (ignoreList == null) 
      throw new ArgumentNullException("ignoreList"); 

     ignoreList.Clear(); 

     ignoreList.Ignore("*.intellisense.js"); 
     ignoreList.Ignore("*-vsdoc.js"); 
     ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled); 
     //ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled); 
     ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled); 
    } 
+0

這似乎是工作。我添加了Clear()方法調用,以便在Ignore()調用之前清除默認值。謝謝! – Joshua