Michael Schröpl: Cache Problem beim Dateidownload

Beitrag lesen

Hi Patrick,

Auf einer Seite gibt es einen Link auf eine Datei zum Downloaden. Diese Datei ändert sich öfters inhaltlich bei gleichbleibendem Dateinamen.

was spricht dagegen, beispielsweise das Änderungsdatum oder die Versionsnummer in den URL aufzunehmen (und die darauf verweisende Seite - mit konstantem URL - ggf. serverseitig zu generieren)?

Wenn sich jemand die Datei schon einmal heruntergeladen hat, nimmt der Browser beim Versuch sich die aktuelle Datei herunterzuladen immer die alte Datei aus dem Cache.

Sendest Du entsprechende HTTP-Header mit, die dem Client nahelegen, dies nicht zu tun?
(Dies löst Dein Problem nicht, aber es mildert die Symptome.)

Es handelt sich übrigens um eine pdf-Datei. PHP stünde auch zur Verfügung...

Beides ist für Dein Problem irrelevant.

meta-tags nützen hier ja wohl nichts, da lediglich die html-Datei neu geladen wird, oder?

Du versuchst, das Verhalten eines HTTP-Client zu beeinflussen - die geeignete Sprache hierfür ist HTTP, und die Umsetzung hierfür besteht im Senden der entsprechenden HTTP-Header. Das kannst Du ggf. mit PHP lösen; ich würde allerdings eine entsprechende Server-Konfiguration vorziehen.

Mit fällt nur ein, der Datei jedes Mal einen anderen Namen zu geben.

Für unterschiedliche Datei-Inhalte ist dies in der Tat eine angemessene Methode - und die einzige, die zuverlässig funktionieren kann.

Gibts auch was einfacheres?

Dein Server kann dem Browser gegenüber lediglich Vorschläge machen; ob sich dieser daran hält, ist seine Sache. Von dazwischenliegenden Caching Proxy-Servern ganz zu schweigen.

Dein Problem ist übrigens hundertfach im Archiv dieses Forums diskutiert worden.

Viele Grüße
      Michael

--
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
(sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
 => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.