2012-07-13 11 views
7

No puedo encontrar una respuesta decente a esta pregunta. Veo que hay un par de preguntas similares que se han formulado, pero que no me dan respuestas decentes.Comprime automáticamente html y css en Publish?

En Visual Studio, ¿hay alguna forma de comprimir automáticamente todos los archivos que se deben comprimir (HTML, XML, CSS) cuando se publica la aplicación?

Parece un poco inútil y un desperdicio tener todos los espacios en blanco adicionales, comentarios y otras cosas en el servidor. He buscado diferentes extensiones y paquetes NuGet, pero no he podido encontrar nada que me proporcione una solución.

Respuesta

6

Desea algo como Cassette.

cassette ordena automáticamente, concatena, le resta, cachés y versiones de todo el JavaScript, CoffeeScript, CSS, menos, Sass y HTML plantillas.

Es muy simple de usar, solo lea su documentación. Se tarda como máximo 5 minutos en configurarlo.

instalar, abrir el paquete de la consola NuGet y escribe:

Install-Package Cassette.Web 

Esto se encargará de instalar y preparar las cosas para usted.

Para obtener ayuda o sugerencia, echa un vistazo a su grupo de Google:

http://groups.google.com/group/cassette


También existe la opción de usar SquishIt. Funciona bien con MVC3 y cumple la misma función que Casete. Sin embargo, personalmente prefiero Cassette.

http://lostinthegc.wordpress.com/2012/01/14/using-squishit-in-an-asp-net-mvc3-web-application/

+0

¿Sabe si el cassette puede funcionar durante la fase de publicación? TIA. – superjos

4

Otra herramienta útil es Chirpy. Lo usé con VS hasta 2010. Está definiendo paquetes con un archivo XML simple. Se integra en VS por lo que si algún archivo (css, less, js, ...) cambia, la versión minimizada se reinscribirá automáticamente en segundo plano.

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

Con el archivo siguiente ejemplo (.chirp.config) los archivos CSS dados se encuentran agrupados y minified en dos archivos denominados external.min.css y internal.min.css:

<?xml version="1.0"?> 
<root> 
    <FileGroup Name="external.css"> 
    <File Path="css/jquery.ui.core.css" /> 
    <File Path="css/jquery.ui.theme.css" /> 
    <File Path="css/jquery.ui.button.css" /> 
    <File Path="css/default.css" /> 
    </FileGroup> 
    <FileGroup Name="internal.css"> 
    <File Path="css/jquery.ui.core.css" /> 
    <File Path="css/jquery.ui.theme.css" /> 
    <File Path="css/jquery.ui.autocomplete.css" /> 
    <File Path="css/jquery.ui.progressbar.css" /> 
    <File Path="css/jquery.ui.accordion.css" /> 
    <File Path="css/default.css" /> 
    <File Path="css/datatables.css" /> 
    </FileGroup> 
</root> 
1

utilizo el paquete WebMarkupMin en Nuget. Tiene un buen minificador de HTML que utilizo cuando genero resultados HTML en mi programa:

var htmlMinifier = new HtmlMinifier(); 
var result = htmlMinifier.Minify(myHTML, generateStatistics: false); 
Console.WriteLine(result.MinifiedContent);