2009-05-19 15 views
6

¿Hay alguna compresión nativa (para archivos javascript/css) disponible en ASP.NET?ASP.NET - compresión de script y css

+0

qué tipo de compresión: minificación/embalaje o gzip/deflate? –

+0

no estoy seguro de la diferencia entre minificación/embalaje y gzip/desinflar. Lo que estoy buscando es una forma nativa de que asp.net comprima archivos script y css para que los archivos reales que se solicitan desde el servidor sean más pequeños. –

Respuesta

4

En el apéndice de Professional ASP.NET 3.5 Scott Hanselman habla de Packer for .NET. Esto se integrará con MSBuild y el paquete de archivos de javascript para despliegues de producción, etc.

+0

Parece que publicamos la misma respuesta al mismo tiempo :-) –

+0

Parece que Packer es lo más parecido a la compresión nativa en .NET. –

+0

En la página Packer hay una sección "Packer versus JSMin" que dice que JSMin puede ser más eficiente que Packer. En la página Yahoo Compressor (http://developer.yahoo.com/yui/compressor/) se afirma que el compresor Yahoo es más eficiente que JSMin, por lo que parece que el compresor Yahoo podría ser un buen candidato aunque no sea nativo de .NET. ambiente. –

4

Puede usar Packer.

Este utlity admite la compresión de JavaScript y/o "minificación", y CSS "minifying".

Está disponible como una utilidad de línea de comandos o también como una tarea de MSBuild. De esta manera puede integrarlo en su proceso de compilación/proyecto de Visual Studio.

+0

Las grandes mentes piensan igual ;-) – RedWolves

1

adicional a otras respuestas y comentarios, puede utilizar Yahoo! 'S YUI Compressor y lo convierten en un MSBuild Task a la integración en el proceso de construcción e implementación.

+0

útil. gracias. –

6

Trate Chirpy. Modifica, minimiza y valida tu javascript, hoja de estilo y archivos sin puntos. Puede usar el compresor YUI o el compilador de cierres de Google.

http://chirpy.codeplex.com/

O, para obtener más información, echa un vistazo a:

http://www.weirdlover.com/2010/05/22/visual-studio-add-in-for-dotless-js-and-css-files/

+1

¡Hola Weirdlover! esta cosa Chirpy se ve increíble. ¿Es posible también hacer que comprima los archivos en tiempo de ejecución? Quiero decir que en cada solicitud el servidor comprimirá los archivos especificados (en chirp.config) y devolverá la versión purificada minificada en la respuesta ... ¿posible? – danfromisrael

+1

Hola Dan, estamos construyendo algo así. Pero, mientras tanto, puedes echarle un vistazo a SquishIt, Combres, o puedes trabajar con esta rueda oxidada: http://www.weirdlover.com/2010/05/10/zcontroller-asp-net-mvc-controller-fo -your-scripts-styles-images/ –

+0

SquishIt & Combres se ve bien, pero parece que todavía no tiene demasiadas descargas/soporte de la comunidad ... ¿Alguna idea de cuándo será la próxima versión con esa característica? ¡Gracias! – danfromisrael

1

Trate StyleManager combinación de CSS y minimización. Utiliza el compresor YUI debajo del capó.

Su uso se parece mucho al ScriptManager de asp.net, por lo que es rápido acostumbrarse. Es fácil de agregar a su proyecto también, solo toma un minuto.

Lo más importante: combina tus archivos CSS también. Por lo tanto, en lugar de tener que descargar 10 archivos CSS, solo será 1, que también se comprimirá, etc.

0

Aquí está mi camino: Utilice MVC. Proceso de contenido js | css a través de las acciones del controlador MVC. Combina múltiples archivos en uno. Minificar y ofuscar el script | css on fly antes de que se almacene en caché. Resultados de caché. Usar CacheDependency. Habilita gzip para contenido dinámico. Habilite gzip antes de la función de caché.

Todo se puede hacer simplemente agregando atributos personalizados en métodos de acción, usando ASP.NET MVC Js/Css Composer/Compressor.

muestra:

public class JsController : Controller 
{ 
    [Utility.Processors.JsCompress] 
    [OutputCache(Duration = 3600)] 
    public ActionResult Jquery() 
    { 
     return View(); 
    } 
} 

Usted puede derivar de CustomTextPostProcessingAttribute y hacer su propio post-procesamiento para cualquier tipo de contenido de texto, es necesario.

0

Acabo de enterarme de algo hoy: puede ejecutar JavaScript via windows console. Soy un fan de cssmin.js; entonces, esta consola de windows plus = ¡gana! Todo lo que tiene que hacer es cssmin.js de descarga, lo puso en una carpeta de su proyecto web y añadir el siguiente evento posterior a la generación en Visual Studio:

type "$(ProjectDir)css\*.css" | cscript //NoLogo "$(SolutionDir)tools\cssmin.js" > "$(ProjectDir)css\core.min.css" 

Hacer esto le evita tener que modificar su proyecto as ajaxmin would have you to do .

Cuestiones relacionadas