2011-01-10 11 views
5

Dzień dobry!Łącz, zminimalizuj i gzip dla plików CSS i JavaScript dla ASP.NET MVC

Szukam rozwiązania do łączenia, minimalizowania i gzip plików CSS i JavaScript. Wydaje się, że występują w dwóch formach:

  • W formie ASP.NET obsługi \ modułu przetwarzania plików w locie (z wynikami buforowania)
  • W formie VS budować zadania (aby wykonać obróbkę przy budowie)

Generalnie nie mam nic przeciwko.

Przyjrzałem się wielu rozwiązaniom (i często używam programu obsługi ASP.NET z tego artykułu http://www.codeproject.com/KB/aspnet/httpcompression.aspx), ale być może wydarzyło się coś "must have", a ja go przeoczyłem.

Z góry dziękuję!

Odpowiedz

6

Oto moja rada dla ciebie: używaj zadań kompilacji i HTTP buforuj dane wyjściowe.

Pod względem zadań kompilacji, będziesz chciał sprawdzić swój ulubiony minifender JavaScript (mój ulubiony to Google Closure Minifier), który ma narzędzie wiersza poleceń, które możesz po prostu podłączyć do pliku projektu, pliku MSBUILD lub NANT. Taki sam układ z CSS (osobiście używam Yahoo! YUI Compressor). Jeśli używasz LESS, możesz z pewnością połączyć to ze sprężarką YUI. Aby zoptymalizować obrazy, użyłbym optipng. Są wskazówki, jak ci faceci pracują na poszczególnych stronach.

Teraz, po tym, jak te pliki są ładne i zoptymalizowane, należy je wyprowadzić za pomocą akcji obsługi lub kontrolera dla MVC. Aby ustawić wygasania, aby kolejne żądania będzie domyślnie do pliku pobranego na pierwsze żądanie, będziemy chcieli to uruchomić w kodzie:

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

Więcej niż prawdopodobne, będziemy chcieli strategię cache-buster tak że możesz zmienić pliki zawartości. Można to zrobić, przekazując losowy parametr do programu obsługi. Jest kilka różnych sposobów, aby to zrobić ... po prostu Google to.

Mam nadzieję, że to pomoże.

+0

Dzięki za odpowiedź, dużo grałem przy ręcznym składaniu takich potoków do przetwarzania CSS i JS (zarówno w ASP.NET jak i PHP), czy widziałeś jakieś pakiety/komponenty? – artvolk

+0

@artvolk Co masz na myśli przez "pakiety/komponenty"? – zowens

+0

Mam na myśli coś (biblioteka? Dll? Zadanie msbuild?), Które opakowuje to wszystko w miły sposób na VS. – artvolk

2

Używam telerik mvc components dla małych i średnich witryn. Łatwo było dodać i skonfigurować z NuGet.

+0

Dzięki za odpowiedź, masz na myśli tę część tego pakietu? http://www.telerik.com/products/aspnet-mvc/web-asset-managers.aspx#combination – artvolk

+0

Tak. Menedżer zasobów internetowych obsługuje to wszystko. Używam jej wersji open source. –

2

Ćma może (między innymi) obsłużyć wszystkie twoje żądania javascript/css w locie. Zobacz Wiki: Javascript.

Najlepsze ze wszystkich jest to, że można umieścić wszystkie javascript na dole strony, w tym części pisane w częściowych widokach! Wiki: Inline script.

Powiązane problemy