2012-09-24 14 views
10

W szczególności próbuję utworzyć skryptu w MVC 4 z już skróconymi skryptami i zwrócić ten sam pakiet, niezależnie od tego, czy projekt jest w trybie debugowania, czy nie.ASP.NET MVC 4 ScriptBundle zwraca pusty

Mój projekt internetowy odwołuje się do pakietu MVC Telerik Grid NuGet. W tym pakiecie Telerik dostarcza tylko zminiaturyzowane pliki JS. Kod pakietu znajduje się poniżej.

 // 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")); 

Inne ScriptBundles działają dobrze, ale kiedy mój projekt próbuje odwoływać ten pakiet, wniosek pojawia się jako: scripts/bundles/telerik?v= Wracając nic.

Jeśli ustawię BundleTable.EnableOptimizations = true, to zwróci on ScriptBundle i odniesie się do konkretnej wersji, jednak to rozwiązanie jest niedopuszczalne.

Nie chcę przymusowo ustawić BundleTable.EnableOptimizations = true, ponieważ chcę, aby wszystkie inne Pakiety zwróciły wersje nieminified, gdy jest to właściwe.

Ktoś ma podobne doświadczenie, a jeśli tak, jakie było rozwiązanie?

Odpowiedz

16

myślę, że masz ten sam problem, proszę spojrzeć na ten link: mvc4 bundler not including .min files

Albo zmień .min.js do .js lub zrobić coś takiego:

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

to wydaje się działać. Dodałem wywołanie metody Clear() w celu wyczyszczenia wartości domyślnych przed wywołaniem funkcji Ignore(). Dzięki! – Joshua