Browser-Caching mit .htaccess unterbinden

WordPress Pixabay
WordPress Pixabay

Browser-Caching ist etwas feines. Webseiten, die man schon mal besucht hat muss der Browser nicht erneut herunterladen, sondern kann die auf der Festplatte gespeicherte Version nutzen. Die Seite lädt schneller. Dumm nur wenn man an seinem Blog rumschraubt und Scripte und Stylesheets ändert und sich das ganze dann im Browser anschauen möchte. Das klappt nicht!

Firefox und Chrome weigern sich beharrlich die Änderungen anzuzeigen. Erst nach Löschen des Caches sieht man das neue. Das liegt in meinem Fall zum Teil auch an der von mir genutzten .htaccess. Frank Bültge hat vor ein paar Jahren auf GitHub etwas zu dem Thema veröffentlicht und ich habe es in meiner .htaccess übernommen. Dort wird die „Lebensdauer“ von Dateien auf 1 Jahr festgelegt. Das macht sich jetzt bemerkbar.

.htaccess (engl. hypertext access) ist eine Konfigurationsdatei auf NCSA-kompatiblen Webservern wie Apache, in der verzeichnisbezogene Regeln aufgestellt werden können.

Wikipedia

Für mich selbst ist das nur ärgerlich. Für die Besucher meiner Seite eine Katastrophe. Ich denke mal viele werden meinen Blog nach solchen Änderungen verstümmelt gesehen haben. Ich habe jetzt mit Hilfe eines Code-Snippets von Tobias Scheible das Caching deaktiviert.

FileETag None
<ifModule mod_headers.c>
  Header unset ETag
  Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
  Header set Pragma "no-cache"
  Header set Expires "Mon, 1 Jan 2010 01:00:00 GMT"
</ifModule>

Die Ladezeit dieses Blogs ist jetzt etwas größer. Dafür bekommt ihr die aktuelle, unverstümmelte Version angezeigt.

4 Antworten auf “Browser-Caching mit .htaccess unterbinden”

  1. Häng doch einfach im Header noch eine Versionsnummer an die jeweilige css- oder js-Datei.

    Also statt

    http://www.deineseite.de/style.css

    haust du in den CSS-Link

    http://www.deineseite.de/style.css?v=1

    Bei jeder Änderung der Nummer ist das für den Browser dann ersichtlich eine neue / andere Datei und es wird nicht auf die alte, gecachte Version zurückgegriffen. Vorteil dieser Methode: die neu versionierte Datei wird als neue Datei erkannt UND dann auch entsprechend wieder gecached. Besucher müssen die neue Datei nicht jedes Mal neu laden, sondern nur dann, wenn sich tatsächlich etwas geändert hat und du die Versionsnummer geändert hast.

    Funktioniert genauso gut auch bei Javascript-Dateien.

    Viele Grüße

    Sascha

        1. Ich habe es getestet. Aber habe Probleme damit. Die functions.php des Parent-Themes ist so geschrieben dass sie das CSS des Child-Themes lädt. Auch gibt der Theme-Macher eine Versionsnummer mit. Die erhält logischerweise das CSS des Eltern-Themes. Ich lade per functions.php des Child-Themes das CSS des Eltern-Themes. Im Netz gibts viele Ansätze das zu korrigieren. Keines funktioniert.

Schreibe einen Kommentar

Diese Kommentarfunktion sammelt, außer Datum und Uhrzeit, die Daten die im Kommentar-Formular angezeigt werden.

Ich bin mit der Speicherung und Verarbeitung meiner Daten durch diese Seite einverstanden