Frage

Gibt es eine Möglichkeit, um zu bestimmen oder eine CSS-Datei zu erzwingen erneut zwischengespeichert werden, wenn der Benutzer aus einer alten Datei verwendet wird?

War es hilfreich?

Lösung

Der einzige sicherste Weg, um sicherzustellen, dass jeder Ihre neue Datei neu geladen ist die entsprechende URL zu ändern. Ein sinnvoller Weg, dies zu tun, ohne tatsächlich die Umbenennung ist es auf einer zufälligen Zeichenfolge heften:

<link rel='stylesheet' href='/mystyles.css?random=87365835'>

Das ist mit einem Vorschlaghammer eine Nuss zu knacken, und alle HTTP-Mechanismen zu umgehen, dass dies zu tun gibt, aber es wird absolut überall arbeiten, während die anderen Techniken alle Einsprüche haben.

Edit: @jitter: Sie müssen nicht die URL für jede Anforderung automatisch ändern - Sie können es auf dem Zeitstempel der CSS-Datei stützen könnte, oder sogar nur von Hand ändern, wenn Sie will sicherstellen, dass die CSS neu geladen wird.

Andere Tipps

können Sie versuchen, die Server etags Bearbeitung: http://developer.yahoo.com/performance/rules.html#etags

Aber die bevorzugte Methode ist wahrscheinlich die CSS-Datei, wie zum Beispiel mit dem Datum oder der Build-Nummer zu benennen, so dass die Benutzer immer die neueste haben.

Sehen Sie sich diese Lösung anstelle von xx.css? Rand = 213213213

Was ist eine elegante Art und Weise Browser zu zwingen, im Cache gespeicherten CSS / JS-Dateien neu zu laden?

oder Google für "auto Versionierung" plus Javascript oder CSS hinzufügen. Oder "automatische Asset-Versionierung"

Es verwendet einen automatischen Ansatz, der den Pfad der URL Teil ändert sich nicht von Variablen erhalten anhängt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top