Statinio turinio kešavimas

Iš IV pagalba klientams.
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 iš naujo 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"
ExpiresDefault "access plus 2 minutes"

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
# favicon
  ExpiresByType image/x-icon              "access plus 1 week"
# paveiksleliai
  ExpiresByType image/gif                 "access plus 1 month"
  ExpiresByType image/png                 "access plus 1 month"
  ExpiresByType image/jpg                 "access plus 1 month"
  ExpiresByType image/jpeg                "access plus 1 month"
# css ir js skriptai
  ExpiresByType text/css                  "access plus 2 day"
  ExpiresByType application/javascript    "access plus 2 week"
  ExpiresByType text/javascript           "access plus 2 week"
</IfModule>