Statinio turinio kešavimas
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.
Turinys
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>