Autor Zpráva
WMPopi
Profil
Ahoj,
pracuju na jednom projektu, kde poměrně často přehrávám stávající soubory novějšími. Problém nastává, když si prohlížeč uloží do cache některé .js nebo .css soubory. Nemůžu pokaždý všechny upozorňovat na nutnost obnovit stránku.

Napadá mě použití .htaccess a ExpiresByType, kdysi jsem používal:

ExpiresActive On
ExpiresByType images/jpeg M

tak jestli by nešlo něco podobnýho použít i v tomto případě? Je to správná myšlenka? Jak to řešíte vy?
Darker
Profil
pragma a cache control v header();
Petr__
Profil *
[#1] WMPopi
Měl jsem podobný problém s obrázky, do kterých se generovala data od uživatelů. Taky jsem si hrál s keší, ale vždy tam byl v něčem problém. Nakonec vyřešeno tím, že jsem k obrázkům přidal otazník a "ocásek" - "obrazek.jpg?7955114522" - v podobě aktuálního Unix time (v PHP fce time()). Jde jen o to, tam přidat nějaký náhodný řetězec, a prohlížeč si to pak raději vždycky stáhne znovu.
WMPopi
Profil
Petr_:
Tomu rozumím, ale mě se jedná o víc souborů, takže takhle to řešit nepůjde, prozkoumám co píše Darker..
Petr__
Profil *
[#4] WMPopi
Tak já to samozřejmě nedělám ručně u každého obrázku :-), ale záleží jak máte daný web udělaný/generovaný, pak to může být třeba otázka přidání té funkce...

...
echo $IdObrazku."?".time();
...
Darker
Profil
Ano, ale zakázat cache pomocí hlavičky jak daleko lepší. Takhle je totiž v keši uložených spousta obrázků...
Petr__
Profil *
[#6] Darker
Tak v případě stylů nebo javascriptu to nemusí být (datově) tak hrozné.
Nicméně je otázka co je lepší. Mít 100% jistotu, že uživatel dostane "čerstvý" obrázek/javascript/styl a ty předchozí bude mít navíc v keši, nebo se mu (možná) zobrazí špatný obrázek, nebude fungovat správně daný javescript nebo bude rozházená stránka.
Pokud má někdo ověřené a funkční řešení, jak zařídit nekešování souborů pomocí .htaccess, které nedělá problémy ve všech hlavních prohlížečích, tak ho určitě nejen já uvítám.
Kajman_
Profil *
Za otazník u js a css můžete dát i verzi nebo čas modifikace.
Darker
Profil
Nějak nechápu, k čemu by to bylo.
Kajman_
Profil *
Cesta se změní, jen pokud se soubor opravdu změnil.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: