2011-01-10 43 views
5

için CSS ve JavaScript dosyalarını birleştir, minimize ve gzipleyin İyi günler!ASP.NET MVC

CSS ve JavaScript dosyalarını birleştirmek, küçültmek ve gziplemek için çözüm arıyorum. (Inşa ederken işlem gerçekleştirmek için) görevleri inşa VS şeklinde

  • (önbelleğe alma sonuçları ile) anında işleme dosyaları ile ASP.NET işleyicisi \ modülünün formunda

    • : Onlar iki biçimde görünüyor

    Genellikle ben de sorun yaşıyorum.

    Bir çok çözüme baktım (ve bu yazının ASP.NET işleyicisini çok kullanıyorum http://www.codeproject.com/KB/aspnet/httpcompression.aspx), ama belki "sahip olması gereken" bir şey çıktı ve onu özledim.

    Şimdiden teşekkürler!

  • cevap

    6

    İşte size tavsiyem: Yapım görevlerini kullanın ve çıktıyı HTTP önbelleğine alın.

    Yapı görevleri açısından, proje dosyanızı, MSBUILD dosyasını veya NANT dosyasını bağlayabileceğiniz bir komut satırı yardımcı programı olan en sevdiğiniz JavaScript minifier'ına (en sevdiğim Google Closure Minifier) göz atmak isteyeceksiniz. CSS ile aynı anlaşma (kişisel olarak Yahoo! YUI Compressor kullanıyorum). LESS kullanıyorsan, bunu kesinlikle YUI kompresörü ile birleştirebilirsin. Görüntüleri optimize etmek için optipng kullanıyorum. Bu adamların kendi bireysel sitelerinde nasıl çalıştıkları hakkında talimatlar var.

    Şimdi, bu dosyaların hepsi güzel ve en iyi duruma getirildikten sonra, bunları MVC için bir işleyici veya denetleyici eylemi kullanarak çıkarmak isteyeceksiniz. Sonraki istekler ilk talep üzerine indirilen dosyanın varsayılan böylece sona erme ayarlamak için, bu Kodunuzdaki çalıştırmak istersiniz:

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

    bunu bir önbellek engelleme stratejisi isteyeceksiniz Büyük olasılıkla İçerik dosyalarını değiştirebiliyorsunuz. Bunu işleyicinize rastgele bir parametre ileterek yaparsınız. Bununla ilgili birkaç farklı yol var ... sadece Google. Bu yardımcı olur

    Umut.

    +0

    Yanıt için teşekkürler, CSS ve JS (hem ASP.NET hem PHP için) işlemek için el ile bu tür boru hatlarını bir araya getirerek çok çalıştım, herhangi bir paket/bileşen gördünüz mü? – artvolk

    +0

    @artvolk 'Demetler/bileşenler' ile ne demek istiyorsun? – zowens

    +0

    Bir şeyi (kütüphane? Dll? Msbuild görevi?) Kastediyorum. – artvolk

    2

    Küçük ortamlar için telerik mvc components kullanıyorum. NuGet ile eklemek ve yapılandırmak kolaydı.

    +0

    Yanıt için teşekkürler, bu paketin bu bölümünü kastediyor musunuz? http://www.telerik.com/products/aspnet-mvc/web-asset-managers.aspx#combination – artvolk

    +0

    Evet. Web varlık yöneticisi, tüm bunları ele alan şeydir. Açık kaynak sürümünü kullanıyorum. –

    2

    Moth (diğer şeylerin yanı sıra) tüm javascript/css isteklerinizi anında ele alabilir. Bakınız Wiki: Javascript.

    En iyisi, kısmi görünümlerinizde yazdığınız bölümler de dahil olmak üzere sayfanın alt kısmındaki tüm javascript'leri de yazabilir! Wiki: Inline script.