dedlfix: Kampf gegen den Cache

Beitrag lesen

Tach!

Problem: der Kunde sieht die Änderungen nicht (vollständig) (und seine Kunden vermutlich auch nicht) da die alten Dateien noch im Cache festhängen.
Eigentl. ein simples Problem, nur wie löst man das?

Das ändert jetzt auch nicht allzu viel, wenn der Client das Einstiegsdokument gecacht hat und diese Version noch lange verwendet. Das Einstiegsdokument muss nicht die index.html im DocumentRoot sein, das kann auch irgendeine gebookmarkte (Unter-)Seite sein. Da hilft nur, von vorn herein das Verfallsdatum kurz genug anzugeben, zum Beispiel einen Tag oder bei Bedarf noch kürzer.

Aber bei den im Verhältnis zum Inhalt sich seltener ändernden Beiwerk-Ressourcen (CSS, JS, Bilder) will man die Zeit lieber lang lassen, damit der Client weniger zu übertragen hat. Logischerweise hat ein Client eine Ressource dann nicht mehr im Cache, wenn sich deren URL ändert. Das kann man recht einfach anstellen, indem man eine "Versionsnummer" anhängt. Der Dateiname des Ziels bleibt unverändert, aber der Verweis darauf bekommt ein ?n angehängt, also einen Querystring, wobei n eine bei jeder Änderung hochgezählte Zahl ist.

dedlfix.