Website-Änderungen werden nicht angezeigt wegen Browser-Cache?
Hallo zusammen,
ich habe folgendes Problem:
Ich hoste meine Website bei Ionos. Dort habe ich meine Codes (HTML, CSS, JavaScript und PHP) im Webspace abgelegt, der mit der Domain verbunden ist.
Nun habe ich an der Website Änderungen vorgenommen und z.B. eine mobile Ansicht implementiert. Ich habe die alten Code-Dateien überschrieben.
Auf der Website werden diese Änderungen aber nicht angezeigt, wenn man die Website vor kurzem bereits besucht hatte, da der Browser-Cache die alten Daten noch gespeichert hat.
Gibt es hier eine Möglichkeit, das zu verhindern und für die Nutzer direkt die neue Version anzeigen zu lassen?
Ich danke für eure Rückmeldungen :)
4 Antworten
Das Browser Cache wird über den Cache-Control header gesteuert (den du mit einer .htaccess-Datei konfigurieren kannst). Bei HTML-Dateien sollte dies ein niedriger Max-Age sein (wenige Minuten/Stunden), damit Änderungen schnell sichtbar werden. Bei JavaScript und CSS Dateien ist hingegen die Empfehlung, eine lange Dauer zu setzen (z.B. ein Monat), und einen Hash-Wert an den Dateinamen anzuhängen. Aus "styles.css" wird dann z.B. "styles-174a53fc.css". Wenn die Datei geändert wird, ändert sich auch der Dateiname, sodass der Browser die Datei neu abrufen muss. Bundler wie z.B. Vite tun das automatisch.
Da du aber keinen Bundler nutzt, wäre das für dich sehr umständlich. Du kannst stattdessen eine Zahl an die Dateinamen anhängen (styles-4.css), die du jedes Mal erhöhst, wenn du eine Änderung vornimmst. Oder du verwendest für alle Dateien eine kurze Cache-Dauer.
Zum Testen kannst du auch manuell das Cache in deinem Browser invalidieren, indem du die Seite mit Strg+F5 oder Strg+Umschalt+R (browserabhängig) neu lädst. Oder du öffnest den Netzwerk-Tab in den Entwicklerwerkzeugen und wählst "Disable cache".
Wenn du jetzt die Cache-Dauer anpasst, wirkt sich das nicht auf Nutzer aus, die die Seite schonmal geöffnet haben und die Dateien noch im Cache haben. Damit bei allen das Cache invalidiert wird, musst du die Dateinamen ändern.
Vielen Dank für deine ausführliche Antwort! Das hat mir sehr geholfen :)
Die Cache-Zeit von Webseiten, Skripten, Stylesheets, Bilder, etc. kannst du je nach Webserver zum Beispiel über Einträge in der .htaccess ändern. Wie das bei IONOS funktioniert, kannst du aus deren Hilfe erfahren.
Nachträglich kannst du das aber beim Nutzer nicht mehr ändern. Ist dort im Browser-Cache ein Dokument mit einem bestimmten Cache-Zeitraum, dann „schaut“ der Browser auch erst nach Ablauf der Zeit wieder auf deiner Seite nach.
Um das zu umgehen, kannst du nur die URL ändern. Bei Skripten und Stylesheets kann man das noch relativ leicht machen, bei der Webseite selbst eher nicht. Da musst du einfach warten.
Hallo,
das Problem mit dem Browser-Cache ist bei Website-Updates ziemlich häufig. Wenn Nutzer die Seite bereits zuvor besucht haben, kann es sein, dass sie die alte Version sehen, da der Browser die zwischengespeicherten Daten verwendet, um die Ladezeiten zu verkürzen.
Eine Möglichkeit, dieses Problem zu umgehen, besteht darin, den Cache zu umgehen, indem du sogenannte Cache-Busting-Techniken anwendest. Das bedeutet, dass du z.B. eine Versionsnummer an deine CSS- und JavaScript-Dateien anhängst:
html
Code kopieren
<link rel="stylesheet" href="style.css?v=1.1">
<script src="script.js?v=1.1"></script>
Indem du die Versionsnummer bei jeder Änderung erhöhst, zwingst du den Browser, die neueste Version der Datei zu laden, anstatt die zwischengespeicherte zu verwenden.
Für Nutzer, die die Website schon einmal besucht haben, kannst du empfehlen, den Cache gezielt zu löschen. Hierfür gibt es ein praktisches Chrome-Addon namens "Cache und Cookies Löscher" von Mediahain, mit dem man den Cache und Cookies gezielt löschen kann, ohne den gesamten Browser-Cache leeren zu müssen. Das Addon findest du hier: Cache und Cookies Löscher.
Damit sollten die Nutzer direkt die neuesten Änderungen deiner Website sehen können.
Hi protel,
wie unten von Babelfish unten beschrieben, kann man serverseitig mithilfe der .htaccess und auch durch Meta-Angaben in HTML das Cache-Vehalten anpassen.
Leider spielt da auch der Browser dort auch mit. Browser wie Mozilla Firefox und Google Chrome cachen auch den Inhalt. Dieser lässt sich durch diverse Möglichkeiten löschen.