Opisywane tu „cachowanie” stron oznacza zapisywanie plików stron w pamięci podręcznej przeglądarki – najczęściej na dysku twardym komputera. Dzięki temu nie ma potrzeby wczytywania wszystkich zasobów (tj. obrazki, JavaScripty, style CSS itp.) z serwera WWW, ale używana jest pamięć podręczna przeglądarki. Wczytywanie całej strony jest więc znacznie szybsze.
Zachowanie pamięci podręcznej można skonfigurować za pomocą odpowiednich nagłówków HTTP, indywidualnie lub według typu pliku.
W przypadku serwera WWW Apache (dostępnego na naszym webhostingu) możliwe jest ustawienie „cachowania” za pomocą modułu mod_expires przez dodanie odpowiednich reguł w pliku .htaccess.
<IfModule mod_expires.c> ExpiresActive On ExpiresDefault A600 ExpiresByType text/javascript A604800 ExpiresByType application/javascript A604800 ExpiresByType text/css A604800 ExpiresByType image/gif A604800 ExpiresByType image/png A604800 ExpiresByType image/jpeg A604800 ExpiresByType image/x-icon A604800 ExpiresByType text/html A60 </IfModule>
- A31536000 to wartość wyrażana w sekundach, określająca czas przechowywania danego pliku w pamięci podręcznej. Po upływie tego czasu pliki zostają oznaczone jako wygasłe. Przy kolejnym wyświetleniu strony nastąpi ich ponowne pobranie.
- ExpiresDefault to wartość definiująca maksymalny czas wczytywania pozostałych, niezdefiniowanych plików.
- image/jpg to typ przechowywanego pliku
Alternatywną opcją jest użycie poniższej wersji, która nie tylko kompresuje, ale zapewnia cachowanie kolejnych plików.
Jeśli poniższy kod nie będzie działał z naszym plikiem .htaccess, przenieś stronę do katalogu domains/twoja_domena_koncowka, i umieść w nim .htaccess z poniższym kodem, lub innym kodem, który udostępnił Ci twórca strony.
Sprawdzone ustawienie .htaccess, które obejmuje kompresję:
# BEGIN Compress text files <ifModule mod_deflate.c> AddOutputFilterByType DEFLATE \ text/html \ text/xml \ text/css \ text/plain \ image/svg+xml \ application/xhtml+xml \ application/xml \ application/rdf+xml \ application/rss+xml \ application/atom+xml \ text/javascript \ text/ecmascript \ application/javascript \ application/x-javascript \ application/ecmascript \ application/json \ application/x-font-ttf \ application/x-font-otf \ font/truetype \ font/opentype \ application/x-pointplus </ifModule> # END Compress text files # BEGIN Expire headers <ifModule mod_expires.c> ExpiresActive On ExpiresDefault "access plus 2592000 seconds" ExpiresByType image/x-icon "access plus 2592000 seconds" ExpiresByType image/jpeg "access plus 2592000 seconds" ExpiresByType image/jpg "access plus 2592000 seconds" ExpiresByType image/png "access plus 2592000 seconds" ExpiresByType image/gif "access plus 2592000 seconds" ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds" ExpiresByType text/css "access plus 604800 seconds" ExpiresByType text/javascript "access plus 604800 seconds" ExpiresByType application/javascript "access plus 604800 seconds" ExpiresByType application/x-javascript "access plus 604800 seconds" ExpiresByType text/html "access plus 604800 seconds" ExpiresByType application/xhtml+xml "access plus 604800 seconds" </ifModule> # END Expire headers # BEGIN Cache-Control Headers <ifModule mod_headers.c> <filesMatch "\.(ico|jpe?g|png|gif|swf)$"> Header set Cache-Control "public" </filesMatch> <filesMatch "\.(css)$"> Header set Cache-Control "public" </filesMatch> <filesMatch "\.(js)$"> Header set Cache-Control "private" </filesMatch> <filesMatch "\.(x?html?|php)$"> Header set Cache-Control "private, max-age=360, must-revalidate" </filesMatch> </ifModule> # END Cache-Control Headers # BEGIN Turn ETags Off Header unset Pragma FileETag None Header unset ETag # END Turn ETags Off
Prawidłowe „cachowanie stron”, szybkość przetwarzania i inne kontrole możesz wykonać za pomocą następujących narzędzi:
i