Vypnutí kešování www stránek

Někdy budete muset na úrovni HTML hlaviček vypnout kešování požadované stránky (cache). Důvod je zřejmý: měnící se obsah a snaha o zajištění distribuce aktuálního obsahu. Pak by se mohlo hodit info jak na to.

Nejdřív finta…

Možná nejjednodušším řešením jak zamezit kešování je změna adresy v samotném odkazu na stránku, kterou nechcete kešovat:

Odkaz nekam

Ze serveru se generuje stránka, která obsahuje pokaždé jiný odkaz. Ten se mění díky vkládání časového razítka přímo do URL odkazu a proto bude stránka po každé znovu načtena…

A nebo pak jinak…

HTML




NodeJS

app.get('/', function (req, res) {
    res.header('Cache-Control', 'private, no-cache, no-store, must-revalidate');
    res.header('Expires', '-1');
    res.header('Pragma', 'no-cache');
    res.rendet('nejaka-sablona', nejadaData);
});

PHP

header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');

Python s Flaskem

resp.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
resp.headers["Pragma"] = "no-cache"
resp.headers["Expires"] = "0"

Nginx

location / {
    add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
    expires off;
}

Apache .htaccess


  Header set Cache-Control "no-cache, no-store, must-revalidate"
  Header set Pragma "no-cache"
  Header set Expires 0