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?
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
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.