Súbory cookie sú nevyhnutné pre plynulý chod našej webstránky a poskytovanie našich služieb. Zároveň používame cookies na zacielenie reklamy a aby ste čo najlepšie vedeli využívať našu internetovú stránku. Vaše osobné údaje budú spracované a informácie z vášho zariadenia (súbory cookie, jedinečné identifikátory a ďalšie údaje zariadenia) môžu byť uchovávané, používané a zdieľané s dodávateľmi tretích strán, prípadne používané konkrétne týmto webom alebo aplikáciou. Niektorí dodávatelia môžu spracúvať vaše osobné údaje na základe oprávneného záujmu, proti ktorému môžete vzniesť námietku. Svoj súhlas môžete kedykoľvek odvolať. Ďalšie informácie a možnosti nastavenia vašich preferencií nájdete v rámci našich Podmienok ochrany súkromia. Súhlasíte s používaním cookies a spracovaním súvisiacich osobných údajov?
nevyhnutné cookies - cookies potrebné pre plynulý chod stránky a poskytovanie našich služieb
voliteľné cookies - cookies zabezpečujúce personalizáciu reklám a zber analytických a štatistických dát návštevnosti pre zlepšenie našich služieb
EXO HOSTING
Skočiť na obsah

Ako si nastaviť cachovanie obsahu webovej stránky


1 983 zobrazení

Po vytvorení webovej stránky možno budete chcieť stránku nastaviť tak, aby sa určitý obsah neukladal do vyrovnávajúcej pamäte webového prehliadača, keďže potrebujete, aby sa obsah aktualizoval často, napríklad každý deň. To je vhodné v prípade, ak na stránke ponúkate reštauračné menu vo formáte .PDF, ktoré sa mení každý deň a chcete mať istotu, aby sa na druhý deň návštevníkom nezobrazovala verzia .PDF súboru zo včera alebo z minulého týždňa, keďže už nie je aktuálna.

Samozrejme sú možnosti, ako si vyrovnávajúcu pamäť internetového prehliadača môžete vyčistiť, ale nie každému to napadne alebo to nepovažuje za praktické.

Tvorcovia webových stránok však na strane servera môžu zabrániť, aby sa určité typy súborov neukladali do vyrovnávajúcej pamäte (cache) prehliadačov návštevníkov, takže napr. na druhý deň návštevníci uvidia nový obsah. Toto môžeme dosiahnuť pomocou Apache modulu mod_expires.

 

Nastavenie nepoužívania vyrovnávajúcej pamäte

Tieto nastavenia môžete zrealizovať pomocou súboru .htaccess. Nižšie je príklad kódu, ktorý si môžete vložiť do daného súboru a zároveň aj nastaviť typy súborov, ktoré si neprajete ukladať do vyrovnávajúcej pamäte:
 

# VYPNI CACHE
<IfModule mod_headers.c>
    Header set Cache-Control "no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires 0
</IfModule>

<FilesMatch "\.(css|flv|gif|htm|html|ico|jpe|jpeg|jpg|js|mp3|mp4|png|pdf|swf|txt)$">
    <IfModule mod_expires.c>
        ExpiresActive Off
    </IfModule>
    <IfModule mod_headers.c>
        FileETag None
        Header unset ETag
        Header unset Pragma
        Header unset Cache-Control
        Header unset Last-Modified
        Header set Pragma "no-cache"
        Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
        Header set Expires "Thu, 1 Jan 1970 00:00:00 GMT"
    </IfModule>
</FilesMatch>

 

Vysvetlenie:

  • no-cache: zabezpečí, aby si prehliadač overil pripojením na server, či obsah je stále aktuálny
  • max-age:  nastavenie dĺžky v sekundách, ako dlho môže byť obsah uložený vo vyrovnávacej pamäti (cache) prehliadača. Po uplynutí tejto doby si prehliadač musí vyžiadať novú verziu obsahu zo servera. 0 znamená, že obsah by sa nemal nikdy ukladať do cache, resp. prehliadač sa bude zakaždým dopytovať na server po nový obsah.
  • no-store: príkaz naznačuje, že žiadna vyrovnávajúca pamäť akéhokoľvek druhu, by sa nemala načítavať
  • must-revalidate: funguje obdobne ako no-cache, obsah si načítava na základe nastavenia max-age, obsah si prehliadač preverí po uplynutí max-age. V prípade nuly, zakaždým.

 

Konkrétne typy súborov, ktoré nechcete, aby sa ukladali, určujete na riadku:

<FilesMatch "\.(css|flv|gif|htm|html|ico|jpe|jpeg|jpg|js|mp3|mp4|png|pdf|swf|txt)$">

V zozname si ponechajte len tie typy, ktoré skutočne nechcete, aby sa ukladali do cache, napr. ak nechcete, aby sa ukladali len súbory .PDF, tak si kód upravte takto:

<FilesMatch "\.(pdf)$">

 

Ak z nejakého dôvodu nechcete použiť súbor .htaccess, do hlavičky každej stránky si vložte tento kód, čo je alternatívny spôsob, ako nenačítavať obsah z vyrovnávajúcej pamäte:

<head>
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
</head>

 

 

Nastavenie časového obdobia vyrovnávajúcej pamäte

Druhý variant, ktorý môžete použiť, je nastavenie obdobia, ako dlho sa majú jednotlivé typy súborov, resp. obsahy, držať v pamäti prehliadača bez ďalšej kontroly na serveri. Pri type súboru .PDF si všimnite, že sme nastavili jeden deň. Ostatné hodnoty môžete ponechať tak ako sú alebo si ich upravte podľa potreby. Obsah, ktorý nezvyknete často meniť, môžete ponechať na dlhšie obdobie, mesiace až roky, ostatný zvoľte kratší (hodiny, dni, max týždne):

 

## NASTAV CACHE
<IfModule mod_expires.c>
    FileETag MTime Size
    AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript
    ExpiresActive On
    ExpiresByType text/html "access 600 seconds"
    ExpiresByType application/xhtml+xml "access 600 seconds"
    ExpiresByType text/css "access 1 month"
    ExpiresByType text/javascript "access 1 month"
    ExpiresByType text/x-javascript "access 1 month"
    ExpiresByType application/javascript "access 1 month"
    ExpiresByType application/x-javascript "access 1 month"
    ExpiresByType application/x-shockwave-flash "access 1 month"
    ExpiresByType application/pdf "access 1 day"
    ExpiresByType image/x-icon "access 1 year"
    ExpiresByType image/jpg "access 1 month"  
    ExpiresByType image/jpeg "access 1 month"
    ExpiresByType image/png "access 1 month"
    ExpiresByType image/gif "access 1 month"
    ExpiresDefault "access 1 month"
</IfModule>

 

Dĺžku obdobia, ako dlho chcete alebo potrebujete, aby sa obsah udržiaval vo vyrovnávajúcej pamäti bez opätovnej kontroly na serveri, si môžete definovať nasledovne:

  • year/s
  • month/s
  • week/s
  • day/s
  • hour/s
  • minute/s
  • second/s

 

Je však možné si vytvoriť aj kombinácie, napr. chcete aby sa prehliadač po nový obsah .PDF súboru dopytoval každých 8 hodín a 30 minút:

ExpiresByType application/pdf "access 8 hours 30 minutes"

Obdobne si môžete nastaviť aj ďalšie typy súborov, podľa toho, ako často sa obnovujú.

 

Pri nastavovaní dĺžky obdobia môžete skúsiť ďalšie alternatívy.

Napríklad medzi zápisom

ExpiresByType application/pdf "access 1 day"

a

ExpiresByType application/pdf "access plus 1 day"

je rozdiel nasledovný:

  • access 1 day: nastavíte platnosť cache pre súbory (v našom prípade .PDF) na presne 1 deň od momentu, kedy bol obsah prístupný. Inak povedané, platnosť začne okamžite od času prístupu a vyprší presne o 1 deň.
  • access plus 1 day: "plus" znamená, že sa pridá 1 deň k aktuálnemu času prístupu. Inými slovami, cache vyprší po jednom dni od každého prístupu. Týmto spôsobom sa určí dynamickejší výpočet exspiračného času na základe prístupu k súboru.

0 Komentárov


Odporúčaný komentár

Nie sú tu žiadne komentáre.

×
×
  • Vytvoriť nové...