2012-09-24 12 views
10

Específicamente, estoy intentando crear un ScriptBundle en MVC 4 con scripts ya minificados, y devolver este mismo Bundle si el proyecto está en Debug o no.ASP.NET MVC 4 ScriptBundle devuelve vacío

Mi proyecto web hace referencia al paquete MVC Telerik Grid NuGet. En ese paquete, Telerik solo proporciona los archivos JS minificados. El código de paquete está debajo.

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

Otros ScriptBundles funcionan bien, pero cuando mi proyecto intenta hacer referencia a este paquete, la solicitud aparece como: scripts/bundles/telerik?v= Volviendo nada.

Si configuro BundleTable.EnableOptimizations = true, devuelve el ScriptBundle y hace referencia a una versión específica; sin embargo, esta solución es inaceptable.

No quiero establecer forzosamente BundleTable.EnableOptimizations = true, ya que quiero que todos los demás paquetes devuelvan las versiones no minificadas cuando corresponda.

Cualquiera tiene una experiencia similar y, de ser así, ¿cuál fue la solución?

Respuesta

16

Creo que tienen el mismo problema, por favor un vistazo a este enlace: mvc4 bundler not including .min files

Cambiar nombre .min.js a Js o hacer algo como:

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

Esto parece funcionar. Añadí la llamada al método Clear() para borrar los valores predeterminados antes de las llamadas Ignore(). ¡Gracias! – Joshua

Cuestiones relacionadas