Statinio turinio kešavimas

Iš IV pagalba klientams.
15:21, 19 birželio 2014 versija, sukurta IV MartynasB (Aptarimas | indėlis) (mod_expires naudojimas)
Peršokti į: navigacija, paiešką

Statinį svetainės turinį, kuris niekada arba beveik niekada nesikeičia, galima saugoti laikinoje lankytojų naršyklių atmintyje (angl. cache). Taip galima juntamai pagreitinti svetainės užkrovimą pakartotinai grįžtantiems lankytojams, nes dalies turinio (paveikskėliai, css failai, javascript'ai ir pan.) nebereikia pakartotinai siųsti iš serverio.

Galiojimo laikas nustatomas modulio mod_expires pagalba. Visos taisyklės tiesiog įrašomos į .htaccess failą, kuris paprastai yra arba pagrindiniame svetainės kataloge /public_html/. Jei šio failo nėra - jį galite tiesiog sukurti.

mod_expires naudojimas

Taisyklės rašomos aktyvavus mod_expires modulį, tai atliekama taip:

<IfModule mod_expires.c>
  ExpiresActive on

</IfModule>

Turinio galiojimo laikas nustatomas nurodant kiek laiko, po atidarymo, jį reikia saugoti. Pvz. Jei visus jpg paveikslėlius galima saugoti vieną mėnesį, reikėtų rašyti:

ExpiresActive on
  ExpiresByType image/jpg                 "access plus 1 month"
ExpiresByType image/jpg
Nurodomas failo tipas ir plėtinys
"access plus 1 month"
Nurodoma, kad failą kešuoti vienam mėnesiui

galiojimo laikas gali būti nustatomas metų, mėnesių, savaičių, dienų, valandų, minučių ir sekundžių tikslumu, pvz.:

ExpiresActive on
ExpiresByType image/png "access plus 1 year"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 3 days"
ExpiresByType application/x-shockwave-flash "access plus 1 hour"

Optimalų laikotarpį galima nustatyti žinant kaip svetainė veikia, tačiau bendru atveju paveikslėliai, audio ar video medžiaga gali galioti ilgai, css failai ar javascript'ai kiek trumpiau.

Pavyzdys

<IfModule mod_expires.c>
ExpiresActive on
#paveiksleliai
ExpiresByType image/jpg "access plus 60 days"
ExpiresByType image/png "access plus 60 days"
ExpiresByType image/gif "access plus 60 days"
ExpiresByType image/jpeg "access plus 60 days"
#css failai
ExpiresByType text/css "access plus 1 days"
# favicon paveikslelis
ExpiresByType image/x-icon "access plus 1 month"
# PDF, audio, video failai
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType audio/x-wav "access plus 1 month"
ExpiresByType audio/mpeg "access plus 1 month"
ExpiresByType video/mpeg "access plus 1 month"
ExpiresByType video/mp4 "access plus 1 month"
ExpiresByType video/quicktime "access plus 1 month"
ExpiresByType video/x-ms-wmv "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
# javascript
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType application/x-javascript "access plus 1 week"
ExpiresByType application/javascript "access plus 1 week"
</IfModule>

Šiuo atveju ilgiausiai (2 mėnesius) galioja paveikslėliai, tuomet vieną mėnesį PDF failai ir video/audio turinys. Vieną savaitę galioja javascript'ai ir tik vieną dieną galioja CSS failas.

Gerokai išsamesnę informaciją apie mod_expires naudojimą galite rasti modulio dokumentacijoje: Apache mod_expires