2010-03-29 13 views
11

Muszę użyć pamięci podręcznej dla plików css i plików js, które użyłem w witrynie. Moja strona działa na współdzielonym serwerze hostingowym. nie można nic zrobić z serwerem.jak ustawić pamięć podręczną dla pliku css/js

więc jakie może być rozwiązanie do użycia pamięci podręcznej i kompresji dla plików js i css.

+0

chcą używać buforowania lub nie używać buforowania? – thecoshman

Odpowiedz

-1

Potrzebny jest serwer dostępu do zarządzania serwerem, który jest renderowany przez serwer do przeglądarki.

7

Jeśli możesz używać PHP5, użyj Minify ... Spowoduje to skompresowanie, zaciemnienie i buforowanie twojego HTML/CSS bez zmian w kodzie źródłowym skryptu (JS/CSS).

Jeśli nie można używać PHP5 na serwerze, kompresować & zaciemniać swoje pliki z YUI Compressor i buforowania plików za pomocą .htaccess:

<FilesMatch "\.(css|js)$"> 
Header set Cache-Control "max-age=172800, public, must-revalidate" 
</FilesMatch> 
+0

Minify jest świetną biblioteką, polecam ją wysoko, użyłem jej w dużej aplikacji internetowej i zmniejszyłem liczbę żądań http o 25%. –

+0

_Minify_ nie specyficznie "zaciemnia" kodu. Nazwy funkcji i zmiennych pozostają nietknięte, – MrWhite

38

Jeśli używasz Apache, chciałbym rozpocząć tutaj.

Kompresja i buforowanie to dwie różne rzeczy.

Dla kompresji, PHP Minify lub YUI Compressor są świetne. Jeśli wszystko inne zawiedzie, TextMate ma ładną paczkę narzędzi JavaScript, która pozwala ci skompresować twój kod. Możesz ręcznie skompresować kod, a następnie przesłać go i cofnąć kompresję, aby przywrócić źródło do stanu czytelnego. Nie polecam tego, ale zrobiłem to już wcześniej.

Aby zapisać zawartość w pamięci podręcznej, przeczytaj stronę askapache.com. Istnieje kilka prostych sposobów włączania mod_expires, mod_compress i innych modułów. Ponieważ jesteś na współdzielonym hostingu, oto zastrzeżenia, ponieważ host mógł wyłączyć niektóre moduły Apache. Użyłem GoDaddy i wyłączają mod_expires. Aby uzyskać informacje o specyficznych dla hosta modułach Apache, zapoznaj się z dokumentacją pomocy dla hostów.

Jeśli szczęście, ważne te są włączone i można:

<IfModule mod_deflate.c> 
    SetOutputFilter DEFLATE 
    SetEnvIfNoCase Request_URI \ 
    \.(?:gif|jpe?g|png)$ no-gzip dont-vary 
</IfModule> 

<IfModule mod_expires.c> 
    ExpiresActive on 
    ExpiresByType image/jpg "access 2 month" 
    ExpiresByType image/gif "access 2 month" 
    ExpiresByType image/jpeg "access 2 month" 
    ExpiresByType image/png "access 2 month" 
    ExpiresByType text/css "access 2 month" 
    ExpiresByType application/x-javascript "access plus 2 month" 
    ExpiresByType text/javascript "access plus 2 month" 
    ExpiresByType application/javascript "access plus 2 month" 
    ExpiresByType image/x-icon "access plus 12 month" 
    ExpiresByType image/icon "access plus 12 month" 
    ExpiresByType application/x-ico "access plus 12 month" 
    ExpiresByType application/ico "access plus 12 month" 
</IfModule>` 

Umieść ten kod w pliku .htaccess, otwarty Firefox, a następnie Firebug, a następnie YSlow. Uruchom test YSlow, dzięki któremu dowiesz się, czy działa buforowanie.

Powiązane problemy