Björn Höhrmann: (HTTP) Datei nicht cachen sondern immer neu laden - Sonderfall!

Beitrag lesen

ich habe habe ein Problem mit dem Cachen einer Seite. Es geht darum, dass sie sich ein externes JavaScript holt:

<script src="hierMeinExternesScript.js"></script>

Und nicht die Seite verändert sich dynamisch - sondern genau die Datei mit dem Script! (hierMeinExternesScript.js)

* Wie kann ich den Browser/Proxy anweisen, eine Seite nicht im Cache zu
  speichern?

Generell sollte man das nicht via HTML machen, da der Quellcode vor
    allem von Proxies meist gar nicht geparsed wird. Ein Script oder der
    Server sollte angewiesen werden folgende Header zu senden:

Cache-Control: max-age=0, no-cache, must-revalidate
        Expires: Thu, 30 Mar 2000 20:12:39 GMT
        Pragma: no-cache

Das bei Expires: angegebe Datum sollte das aktuelle Datum im
    HTTP-Date Format sein. '0' ist ein ungültiger Wert!

Falls der Apache Webserver verwendet wird und die Module mod_headers
    und mod_expires geladen wurden (bei < 2.0 in genau der Reihenfolge)
    kann man z.B. in einer .htaccess folgendes definieren:

AddType "text/html; charset=iso-8859-1" .html
ExpiresActive On
ExpiresByType "text/html; charset=iso-8859-1" "now"
<Files ~ ".html$">
            Header append Cache-Control "no-cache, must-revalidate"
            Header set Pragma "no-cache"
</Files>

um alle .html Dateien nicht zu cachen. Ob man das wirklich will,
    muss man sich gut überlegen; die Webseite wird dadurch erheblich
    langsamer, da der Browser bei jedem Zugriff die Resource erneut vom
    Server holen muss.

Wenn man die Möglichkeit nicht hat, kann man ein ähnliches Verhalten
    auch mit META-Tags erreichen:

<meta http-equiv="Cache-Control"
              content="max-age=0, no-cache, must-revalidate">
        <meta http-equiv="Expires"
              content="Thu, 30 Mar 2000 20:12:39 GMT">
        <meta http-equiv="Pragma"
              content="no-cache">