Website-Änderungen werden nicht angezeigt wegen Browser-Cache?

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium
protel 
Fragesteller
 14.09.2023, 22:10

Vielen Dank für deine ausführliche Antwort! Das hat mir sehr geholfen :)

0

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.

Woher ich das weiß:Berufserfahrung – Entwickle Webseiten seit über 25 Jahren.
protel 
Fragesteller
 14.09.2023, 22:10

Dankeschön!

0

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.

Woher ich das weiß:Berufserfahrung – Ich bin gelernter Mediengestalter Digital und Print(IHK)