Tengo debug="true"
en mi web.config (s) , y simplemente no quiero que mis paquetes se minimicen, pero nada de lo que hago parece deshabilitarlo. Lo intenté enableoptimisations=false
, aquí está mi código:
//Javascript
bundles.Add(new ScriptBundle("~/bundles/MainJS")
.Include("~/Scripts/regular/lib/mvc/jquery.validate.unobtrusive.js*")
.Include("~/Scripts/regular/lib/mvc/jquery.validate*")
.Include("~/Scripts/regular/lib/bootstrap.js")
.IncludeDirectory("~/Scripts/regular/modules", "*.js", true)
.IncludeDirectory("~/Scripts/regular/pages", "*.js", true)
.IncludeDirectory("~/Scripts/regular/misc", "*.js", true));
//CSS
bundles.Add(new StyleBundle("~/bundles/MainCSS")
.Include("~/Content/css/regular/lib/bootstrap.css*")
.IncludeDirectory("~/Content/css/regular/modules", "*.css", true)
.IncludeDirectory("~/Content/css/regular/pages", "*.css", true))
asp.net
asp.net-mvc
asp.net-mvc-4
bundle
asp.net-optimization
Baconbeastnz
fuente
fuente
Respuestas:
Si tiene
debug="true"
en web.config y está utilizandoScripts/Styles.Render
para hacer referencia a los paquetes en sus páginas, eso debería desactivar tanto la agrupación como la minificación.BundleTable.EnableOptimizations = false
siempre desactivará tanto la agrupación como la minificación (independientemente del indicador de depuración verdadero / falso).¿Quizás no estás usando los
Scripts/Styles.Render
ayudantes? Si representa directamente las referencias al paqueteBundleTable.Bundles.ResolveBundleUrl()
, siempre obtendrá el contenido minimizado / incluido.fuente
EnableOptimizations = false
- ¿A dónde pertenece este código?Las directivas de compilación condicional son tu amigo:
fuente
Para deshabilitar la agrupación y la minificación, simplemente coloque este su archivo .aspx (esto deshabilitará la optimización incluso si está
debug=true
en web.config )vb.net:
c # .net
Si coloca
EnableOptimizations = true
esto, se agrupará y minimizará incluso si estádebug=true
en web.configfuente
debug="true"
y el derechoScript.Render
pero todavía no funcionaba. También tenga en cuenta que esto no servirá ningún archivo .min.js, así que asegúrese de incluir copias no minificadas del código de dependencia.False
?Puede desactivar la minificación en sus paquetes simplemente borrando sus transformaciones.
Personalmente, esto me pareció útil cuando quería agrupar todos mis scripts en un solo archivo, pero necesitaba legibilidad durante las fases de depuración.
fuente
Intenté muchas de estas sugerencias, pero notar que parecía funcionar. He perdido bastantes horas solo para descubrir que este fue mi error:
Siempre me ha minimizado y agrupado javascript, sin importar lo que haya intentado. En cambio, debería haber usado esto:
El '~' extra lo hizo. Incluso lo eliminé nuevamente en una sola instancia para ver si realmente era así. Fue ... espero poder salvar al menos a una persona las horas que desperdicié en esto.
fuente
Combine varias respuestas, esto funciona para mí en ASP.NET MVC 4.
fuente
También hay una forma sencilla de controlar la minificación (y otras características) de forma manual. Es el nuevo transformador CssMinify () que usa, como este:
Eso es conveniente cuando quieres tener algunos paquetes de parte especial solo para ser minimizados. Digamos que está utilizando algunos estilos estándar (jQuery), que se están poniendo bajo sus pies (recibiendo muchas solicitudes excesivas del navegador), pero desea mantener sin minificar su propia hoja de estilos. (Lo mismo, con javascript).
fuente
Combiné algunas respuestas dadas por otros en esta pregunta para llegar a otra solución alternativa.
Objetivo: siempre agrupar los archivos, deshabilitar la minificación JS y CSS en caso de que
<compilation debug="true" ... />
y aplicar siempre una transformación personalizada al paquete CSS.Mi solucion :
1) En web.config :
<compilation debug="true" ... />
2) En el método Global.asax Application_Start () :
fuente
Si establece la siguiente propiedad en false, deshabilitará tanto la agrupación como la minificación.
En el archivo Global.asax.cs , agregue la línea como se menciona a continuación
fuente
Aquí se explica cómo deshabilitar la minificación por paquete:
Nota al margen: las rutas utilizadas para sus paquetes no deben coincidir con ninguna ruta real en sus compilaciones publicadas, de lo contrario, nada funcionará. También asegúrese de evitar el uso de .js, .css y / o '.' y '_' en cualquier parte del nombre del paquete. Mantenga el nombre lo más simple y directo posible, como en el ejemplo anterior.
Las clases auxiliares se muestran a continuación. Tenga en cuenta que para hacer que estas clases estén preparadas para el futuro, eliminamos quirúrgicamente las instancias de minería js / css en lugar de usar .clear () y también insertamos una transformación mime-type-setter sin la cual las compilaciones de producción seguramente tendrán problemas, especialmente cuando se trata de entregar correctamente los paquetes css (firefox y chrome rechazan los paquetes css con el tipo mime establecido en "text / html", que es el valor predeterminado):
Para que todo funcione, debe instalar (a través de nuget):
WebGrease 1.6.0+ Microsoft.AspNet.Web.Optimization 1.1.3+
Y su web.config debería enriquecerse así:
Tenga en cuenta que es posible que tenga que tomar medidas adicionales para que sus paquetes css funcionen en términos de fuentes, etc. Pero esa es una historia diferente.
fuente
Solo para complementar las respuestas ya dadas, si también NO desea minimizar / ofuscar / concatenar ALGUNOS archivos mientras aún permite la agrupación completa y la minificación para otros archivos, la mejor opción es ir con un renderizador personalizado que lea el contenido de un paquete en particular (s) y renderizar los archivos en la página en lugar de representar la ruta virtual del paquete. Personalmente, lo requería porque IE 9 costaba $ *% en la cama cuando mis archivos CSS se agrupaban incluso con la minificación desactivada .
Muchas gracias a este artículo , que me dio el punto de partida para el código que utilicé para crear un Renderizador CSS que representaría los archivos para el CSS pero aún permitiría que el sistema procese mis archivos javascript agrupados / minificados / ofuscados.
Creó la clase auxiliar estática:
Luego, en el archivo de diseño de la maquinilla de afeitar:
en lugar del estándar:
Estoy seguro de que crear un renderizador opcional para archivos javascript también necesitaría poco para actualizar a este asistente.
fuente
CssTemplate
a algo como"<link href=\"{0}?f={1}\" rel=\"stylesheet\" type=\"text/css\" />"
y cambiar lasb.AppendFormat
línea a algo comosb.AppendFormat(CssTemplate + Environment.NewLine, urlHelper.Content(file.VirtualFile.VirtualPath), System.IO.File.GetLastWriteTimeUtc(HttpContext.Current.Server.MapPath(file.IncludedVirtualPath)).Ticks);
Busque la
EnableOptimizations
palabra clave en su proyectoEntonces si encuentras
dale la vuelta
false
.fuente
Si está utilizando la transformación CSS LESS / SASS, hay una opción
useNativeMinification
que se puede establecer en falso para deshabilitar la minificación (en web.config). Para mis propósitos, solo lo cambio aquí cuando lo necesito, pero podría usar transformaciones web.config para habilitarlo siempre en la versión de lanzamiento o tal vez encontrar una forma de modificarlo en el código.Consejo: El objetivo de esto es ver su CSS, lo que puede hacer en el navegador para inspeccionar las herramientas o simplemente abriendo el archivo. Cuando se habilita la agrupación, ese nombre de archivo cambia en cada compilación, por lo que pongo lo siguiente en la parte superior de mi página para que pueda ver fácilmente mi CSS compilado en una nueva ventana del navegador cada vez que cambia.
esta será una URL dinámica algo así como
https://example.com/Content/css/bundlename?v=UGd0FjvFJz3ETxlNN9NVqNOeYMRrOkQAkYtB04KisCQ1
Actualización: creé una transformación web.config para configurarlo como verdadero durante la implementación / lanzamiento
fuente
Esto puede llegar a ser útil a alguien en el futuro como el nuevo marco, cuando la configuración a través de VS, consigue un defecto
web.config
,web.Debug.config
yweb.Release.config
. En elweb.release.config
encontrarás esta línea:Esto parecía anular cualquier cambio en línea que hice. Comenté esta línea y estábamos en salsa (en términos de ver código no minimizado en una compilación de "lanzamiento")
fuente