Wenn mod_expires in .htaccess verwendet wird, werden geänderte Dateien vom Client heruntergeladen

Wenn mod_expires in .htaccess verwendet wird, werden geänderte Dateien vom Client heruntergeladen

Ich versuche, Caching zu verwenden, um die Reaktionszeit einer Website zu beschleunigen. In den meisten Dokumentationen, die ich gelesen habe, wird empfohlen, das Ablaufdatum wie folgt auf +1 Monat ab dem Zugriffszeitpunkt festzulegen:

ExpiresActive On
ExpiresByType text/css "access plus 1 month"

Ich mache mir Sorgen, dass der Client die aktualisierte Datei nicht erhält, wenn ich eine CSS-Datei aktualisiere.

Kann sichergestellt werden, dass der Client eine neue Version einer Datei herunterlädt, wenn diese geändert wurde?

Jede Hilfe ist willkommen

Antwort1

Ihre Besorgnis ist berechtigt – Clients, deren Browser die Datei abgerufen haben, erhalten die aktualisierte Version normalerweise erst einen Monat nach dem Zugriff darauf, es sei denn, sie haben zufällig ihren Browser-Cache geleert oder laden die Seite neu.

Eine Möglichkeit, dies zu umgehen, besteht darin, die CSS-Datei zu aktualisieren und das HTML, das darauf verweist, so zu ändern, dass am Ende des href-Attributs des Link-Tags (also nach der CSS-Datei) ?v=2 oder ?v=3 usw. steht. Browser betrachten dies als eindeutige URL und laden daher die neue Kopie herunter, die jedoch auf dieselbe physische CSS-Datei auf Ihrem Server verweist.

<link rel="stylesheet" type="text/css" href="/styles.css" />

wird

<link rel="stylesheet" type="text/css" href="/styles.css?v=2" />

verwandte Informationen