Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie cachuje plików js i css
Forum PHP.pl > Forum > Serwery WWW
konrados
Cześć,

Mam taki oto problem, że żadna przeglądarka nie cachuje moich plików css i js (obrazki owszem cachuje). Gdy szukam problemu w googlu, okazuje się, że u większości właśnie cachuje i ludzie szukają możliwości jak to wyłączyć, no u mnie odwrotnie - chciałbym to właśnie włączyć.

Znalazłem takie oto rozwiązanie, które należy umieścić w pliku .htaccess:

# Enable ETag
FileETag MTime Size

# Set expiration header
ExpiresActive on
ExpiresDefault "access plus 1 week"

I owszem, działa, ale jak zrobić by to działało tylko dla plików js i css? By mi przypadkiem nie zaczął cachować plików np. .php?

Albo może jest jakieś inne rozwiązanie, ale wyjąwszy wsadzanie kodu php do plików js by wysyłać odpowiednie headers?

I drugie pytanie - na str. apacha ( http://httpd.apache.org/docs/1.3/mod/core.html#fileetag ) znalazłem, że domyślnie to jest włączone (to całe FileETag) - czy dobrze myślę, że jeśli powyższy kod u mnie zadziałał, tzn. że u mnie to było wyłączone? A jeśli tak, to czy to normalna praktyka?

maly_swd
http://code.google.com/p/minify/ zainteresuj sie tym, zalety:

- kompresja GZIP
- wysylanie odpowiednich naglowkow
- ustawienie czasu cachu
- wywalanie komentarzy z plikow (rozmiar)
- sklejanie wielu plikow w 1 co przyspiesza ladowanie i daje wieksza kompresje

dziala na css i js
konrados
Ojej, dzięki za odpowiedź, ale ja mam, na projekt, z reguły około trzech-czterech plików js (w tym dwa to jquery i jquery ui ściągane z google cdn) i jeden - dwa pliki css. Twoje rozwiązanie w moim przypadku to jak strzelanie z armaty do komara smile.gif

Chcę tylko by js/css były pobierane z cache, na pewno jest jakaś prosta metoda... Szczególnie, że z tego co znalazłem, jest to standardowe ustawienie większości serwerów, tylko znowu ja mam jakieś problemy.
thek
Konrados... To co podałes działać powinno. Tylko musisz użyć odpowiedniej regułki dla danego typu danych smile.gif Ja stosuję to dla obrazków:
[APACHE] pobierz, plaintext
  1. ExpiresActive On
  2. # expires after a 10min in the client's cache
  3. ExpiresByType image/jpg A600
  4. ExpiresByType image/jpeg A600
  5. ExpiresByType image/pjpeg A600
[APACHE] pobierz, plaintext

Teraz poszukaj jaki typ to pliki css i js smile.gif

Można też z
[APACHE] pobierz, plaintext
  1. <FilesMatch "\.(css|js)$">
  2. ExpiresDefault A600
  3. </FilesMatch>
[APACHE] pobierz, plaintext

Gdzie liczba za A oznacza czas życia w sekundach
konrados
Ojej, trochę mnie nie było, więc idą spóźnione podziękowania i "pomógł" smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.