5 Stimmen

CSS-Änderungen werden nicht auf der Website angezeigt

Wenn wir Änderungen am CSS vornehmen, dauert es in der Regel 24 Stunden, bis die Änderungen auf meiner Website erscheinen. Ich habe versucht, den Server-Cache und den Browser-Cache zu leeren, aber auch das hilft nicht. Gibt es eine andere Möglichkeit, die CSS-Änderungen sofort nach der Aktualisierung zu übernehmen?

es geschieht in allen Browsern... wenn ich es im Browser überprüfen, kann ich meine css-Datei mit zwei Pfaden zB zugreifen: Ich speichere meine css in Ordner mit dem Namen "Cssfolder" und meine css Name ist sagen 135.css Wenn ich also auf die Ordnerpfade zugreife, C ssfolder/135.css & c ssfolder/135.css, einer der Pfade zeigt mir das neueste css, während der andere mir das alte css zeigt.

Danke.

0 Stimmen

Verwenden Sie einen Proxy oder werden die Seiten vom ISP zwischengespeichert?

0 Stimmen

Gilt das auch dann, wenn Sie bei der Anzeige des "alten" CSS die Umschalttaste F5 drücken?

0 Stimmen

Ja, das gilt auch für f5 und refresh :(

7voto

Tim Knight Punkte 8304

Ich habe festgestellt, dass dies ein ziemlich häufiges Problem bei vielen meiner Projekte ist. Ich würde zwei Dinge vorschlagen...

  1. Wenn es sich nur um eine App handelt, an der Sie gerade arbeiten, können Sie die CSS-Cachebuster während der Entwicklung.

  2. In Anlehnung an die Idee hinter dem Cachebuster habe ich festgestellt, dass das Hinzufügen des Zeitstempels der CSS-Datei als Abfragezeichenfolge aus dem CSS-Link oft dazu beiträgt, dem Browser mitzuteilen, dass die Datei anders ist... so etwas wie... whatever.css?12212009035543

3voto

Olaf Kock Punkte 44749

Möglicherweise möchten Sie ein Überwachungsprogramm verwenden, wie Live-Http-Header für Firefox, um die Anfragen und Antworten an und vom Server zu sehen. Dies löst normalerweise viele Probleme für mich. Werfen Sie einen Blick auf die " Ablaufen "Kopfzeilen und bedingte Anfragen (wie "If-modified-since"). Schauen Sie sich die lokalen Zeiten und Zeitzonen des Servers und des Clients an - es könnte sein, dass sie sich erheblich unterscheiden und bedingte GET-Anfragen aufgrund von zukünftigen oder anderweitig verfälschten Zeitstempeln korrekt behandelt werden "scheinen".

Sie können erzwingen, dass das aktuelle CSS direkt vom Server geladen wird, indem Sie einen zufälligen eindeutigen Wert an die URL anhängen, z. B. http://example.com/Cssfolder/135.css?983274928374 y http://example.com/cssfolder/134.css?08973249827 . Es gibt keine Möglichkeit, dass dies jemals zwischengespeichert wird, es sei denn, Sie verwenden denselben Zufallswert zweimal.

Auf diese Weise erfahren Sie, wo Sie weiter nach der Lösung Ihres Problems suchen müssen: beim Server, beim ISP/Proxy oder bei Ihrem Browser.

1voto

Jon Skeet Punkte 1325502

Sie müssen wirklich sehen, ob dies serverseitig oder clientseitig ist. Wenn der Server noch unter das alte CSS, dann haben Sie auf der Client-Seite eindeutig keine Chance.

Ich habe gelegentlich erlebt, dass ich das CSS im Browser anzeigen musste, und wenn ich dann das nächste Mal die echte Seite aufrief, wurde das neue CSS verwendet. Normalerweise genügt ein Klick auf Aktualisieren.

Haben Sie irgendwo Web-Caches wie Akamai eingebunden?

Wenn Sie versuchen, die CSS-Seite von einem Computer aus aufzurufen, der die alte Version noch nie gesehen hat, welche Version wird dann angezeigt?

EDIT: Die Antwort wurde an die Änderungen in der Frage angepasst.

0 Stimmen

In diesem Fall wird es neuere Version zeigen, aber Server können nicht ändern, so dass jedes Mal, wenn ich den Code auf dem Server aktualisieren ich dieses Problem Gesicht. und ich habe keine Webcaches in diesem Fall beteiligt

0 Stimmen

Wenn die neuere Version angezeigt wird, wenn Sie von einem anderen Computer aus browsen, handelt es sich wahrscheinlich um ein Client-Problem.

1voto

user48112 Punkte 71

Ich habe mit diesem Problem in der Vergangenheit zu tun, und endete mit dem Schreiben eines httpmodule, um es zu behandeln.

Es ist ziemlich einfach, es findet einfach alle Skript/Css-Links im Head-Tag (sie müssen jetzt runat=server haben) und fügt die Versionsnummer der Assembly an den Link an, so wie es Tim K beschreibt. Auf diese Weise im sicher, dass meine Kunden immer holt die neuesten css / Skripte, wenn meine app in der Produktion aktualisiert wird, und müssen nie mit diesem Problem wieder beschäftigen.

0voto

tunnuz Punkte 22266

Vielleicht Internet Service Provider Cache, wie in diesem Fall ?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X