2011-01-10 9 views
5

¡Buen día!Combina, minimiza y gzip para archivos CSS y JavaScript para ASP.NET MVC

Estoy buscando una solución para combinar, minimizar y gzip archivos CSS y JavaScript. Parece que vienen en dos formas:

  • En forma de ASP.NET manejador \ módulo con archivos de procesamiento sobre la marcha (con resultados de almacenamiento en caché)
  • En forma de construir VS tareas (para llevar a cabo el procesamiento mientras que la construcción)

En general estoy de acuerdo con cualquiera de los dos.

He buscado una serie de soluciones (y utilizo mucho el controlador ASP.NET de este artículo http://www.codeproject.com/KB/aspnet/httpcompression.aspx), pero tal vez algo "debe haber" surgido y lo he echado de menos.

¡Gracias de antemano!

Respuesta

6

Aquí les doy un consejo: use las tareas de compilación y la caché HTTP en la salida.

En términos de tareas de compilación, querrá consultar su minificador de JavaScript favorito (mi favorito es Google Closure Minifier) que tiene una utilidad de línea de comandos que puede enchufar a su archivo de proyecto, MSBUILD o NANT. Mismo trato con CSS (yo personalmente uso Yahoo! YUI Compressor). Si te gusta usar LESS, puedes combinar esto con el compresor YUI. Para optimizar las imágenes, usaría optipng. Hay instrucciones sobre cómo trabajan estos tipos en sus sitios individuales.

Ahora, después de que tenga todos estos archivos agradables y optimizados, querrá generarlos mediante un controlador o acción de controlador para MVC. Para establecer la expiración para que las solicitudes posteriores serán por defecto en el archivo descargado en la primera solicitud, querrá esto para ejecutar en el código:

Response.ExpiresAbsolute = DateTime.Now.AddYears(1); 

más probable es que querrá una estrategia de caché de romper por lo que puedes cambiar los archivos de contenido. Haría esto pasando un parámetro aleatorio a su controlador. Hay algunas formas diferentes de hacerlo ... solo Google.

Espero que esto ayude.

+0

Gracias por la respuesta, he jugado mucho con el ensamblaje de tales canalizaciones a mano para procesar CSS y JS (tanto para ASP.NET como para PHP), ¿has visto algún paquete/componente? – artvolk

+0

@artvolk ¿Qué quiere decir con 'paquetes/componentes'? – zowens

+0

Me refiero a algo (¿library? Dll? Msbuild task?) Que envuelve todo esto de una manera agradable en VS. – artvolk

2

Estoy usando el telerik mvc components para sitios pequeños-medianos. Fue simple de agregar y configurar con NuGet.

+0

Gracias por la respuesta, ¿te refieres a esta parte de este paquete? http://www.telerik.com/products/aspnet-mvc/web-asset-managers.aspx#combination – artvolk

+0

Sí. El administrador de activos web es lo que maneja todo eso. Estoy usando la versión de código abierto. –

2

Moth puede (entre otras cosas) manejar todas sus solicitudes de javascript/css sobre la marcha. Ver Wiki: Javascript.

¡Lo mejor de todo es que también puede poner todos los javascript en la parte inferior de la página, incluidas las partes que escriba en sus vistas parciales! Wiki: Inline script.