2009-05-19 11 views
6

Esiste una compressione nativa (per i file javascript/css) disponibile in ASP.NET?ASP.NET - compressione script e css

+0

che tipo di compressione: minification/packing o gzip/deflate? –

+0

non sicuro della differenza tra minification/packing e gzip/deflate. quello che sto cercando è un modo nativo per asp.net per comprimere script e file CSS in modo che i file effettivi richiesti dal server siano più piccoli. –

risposta

4

Nell'appendice di Professional ASP.NET 3.5 Scott Hanselman parla di Packer for .NET. Questo si integrerà con MSBuild e comprimerà i file javascript per implementazioni di produzione, ecc.

+0

Sembra che abbiamo pubblicato la stessa risposta allo stesso tempo :-) –

+0

Sembra che Packer sia la cosa più vicina alla compressione nativa in .NET. –

+0

Nella pagina Packer c'è una sezione "Packer contro JSMin" che dice che JSMin può essere più efficiente di Packer. Nella pagina Yahoo Compressor (http://developer.yahoo.com/yui/compressor/) si afferma che il compressore di Yahoo è più efficiente di JSMin, quindi sembra che il compressore di Yahoo potrebbe essere un buon candidato anche se non è nativo di .NET. ambiente. –

4

È possibile utilizzare Packer.

Questa funzionalità supporta la compressione JavaScript e/o "minifying" e CSS "minifying".

È disponibile come utilità della riga di comando o anche come attività MSBuild. In questo modo è possibile integrarlo nel processo di compilazione/progetto Visual Studio.

+0

Le grandi menti pensano allo stesso modo ;-) – RedWolves

1

Oltre alle altre risposte e ai commenti, è possibile utilizzare Yahoo! 's YUI Compressor e renderlo un MSBuild Task per integrarlo nel processo di generazione e distribuzione.

+0

utile. grazie. –

6

Prova Chirpy. Mastica, riduce e convalida i file javascript, fogli di stile e senza punti. È possibile utilizzare YUI Compressor o Google Closure Compiler.

http://chirpy.codeplex.com/

Oppure, per ulteriori informazioni, check out:

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

+1

Hey Weirdlover! questa cosa Chirpy sembra incredibile. è possibile anche farlo comprimere i file in fase di runtime? Intendo dire che in ogni richiesta il server comprimerà i file specificati (nel chirp.config) e restituirà la versione minifattata nella risposta ... posible? – danfromisrael

+1

Hey Dan - stiamo costruendo qualcosa del genere. Ma, nel frattempo, puoi controllare SquishIt, Combres, o puoi futz con questa ruota arrugginita: http://www.weirdlover.com/2010/05/10/zcontroller-asp-net-mvc-controller-fo -your-scripts-styles-images/ –

+0

SquishIt & Combres sembra carino ma non sembra avere troppi download/supporto per la comunità ancora ... qualsiasi idea di quando sarà la prossima versione con quella funzione? Grazie! – danfromisrael

1

Prova StyleManager per la combinazione CSS e minification. Usa compressore YUI sotto il cofano.

Il suo utilizzo è molto simile a ScriptManager di asp.net, quindi è facile abituarsi. È facile aggiungere anche al tuo progetto, richiede solo un minuto.

Ancora più importante: combina anche i file CSS. Quindi, invece di avere come 10 file CSS da scaricare sarà solo 1, che sarà anche compresso, ecc.

0

Ecco il mio modo: Usa MVC. Elabora i contenuti js | css tramite le azioni del controller MVC. Combina più file in uno solo. Minimizza e offusca lo script | css on fly prima che venga memorizzato nella cache. Risultati della cache. Usa CacheDependency. Abilita gzip per il contenuto dinamico. Abilita gzip prima della funzione cache.

Tutto può essere fatto semplicemente aggiungendo attributi personalizzati sui metodi di azione, utilizzando ASP.NET MVC Js/Css Composer/Compressor.

Esempio:

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

è possibile derivare da CustomTextPostProcessingAttribute e rendere il vostro post-elaborazione per qualsiasi tipo di contenuto del testo, è necessario.

0

Ho appena imparato qualcosa oggi: è possibile eseguire JavaScript via windows console. Sono un fan di cssmin.js; quindi, questa plus windows console = vinci! Tutto quello che dovete fare è scaricare cssmin.js, metterlo in una cartella sul vostro progetto web e aggiungere il seguente evento post-generazione in Visual Studio:

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

In questo modo si evita di dover modificare il progetto as ajaxmin would have you to do .

Problemi correlati