Wie kann ich den Cache von Safari wirklich leeren?

16

Es gab unzählige Male, in denen ich auf ein Problem stieß, nachdem ich HTML auf einem Mac bearbeitet hatte. Das Problem ist darauf zurückzuführen, dass ich die aktualisierte Datei über FTP auf meinen Server hochgeladen habe und dann in Safari zur Website navigiere. Das einzige, was nicht richtig gehandhabt wurde, war, dass Safari die Webseite (die alte Version) bereits zwischengespeichert hatte, sodass die alte Version angezeigt wurde. Ich dachte bei mir und entschied mich, den Cache in Safari zu leeren, in der Hoffnung, dass dies mein Problem lösen würde. Wenn Sie den Cache leeren, wird die Website scheinbar neu geladen. Es kam immer noch mit der alten Version der Datei. Um zu beweisen, dass die Datei auf dem Server tatsächlich aktualisiert wurde, habe ich einen anderen Mac im selben Netzwerk verwendet und die neue Version der Datei angezeigt. Egal, wie oft ich den Cache aktualisiert oder geleert oder Safari erneut geöffnet habe, es wird immer die alte Datei geliefert. Die einzige andere Lösung, die ich finden konnte, war ein Neustart. Nach einem Neustart hat Safari die gesamte Website neu geladen und die neue Version der Datei angezeigt.

Ich frage mich wirklich nur, wie man den Cache von Safari leert und wie er sich richtig verhält. Tut dies das Betriebssystem (ich hatte auch ähnliche Probleme mit Dateien auf meiner Festplatte)? Ich möchte nicht ständig neu starten müssen, um eine neue Version einer Datei anzuzeigen. Kann ich also sicherstellen, dass die neueste Version angezeigt wird? Gibt es einen temporären Speicherordner, den ich manuell löschen kann? Dies passiert mir ziemlich oft (nicht sehr häufig, aber es reicht aus, dass ich es merke) und meine einzige aktuelle Lösung ist ein Neustart.

Ich habe ein seltsames Gefühl (es ist nicht wirklich ein Gedanke, aber eine sehr geringe Möglichkeit, die wenig Sinn ergibt), dass es von einer niedrigeren Ebene kommt.

Andrew Larsson
quelle
Verwenden Sie Chrom (oder Oper)?
Fake Name
Ich möchte lieber Firefox verwenden, aber ich entwickle gerade. Daher muss ich meine Website auf allen Browsern, einschließlich Safari, testen.
Andrew Larsson
Es kann nützlich sein, den curlBefehlszeilenbefehl zu verwenden, um eine URL anzufordern, um zu sehen, worauf es ankommt. Die alte Seite oder die neue? Da curles kein Konzept gibt, etwas zu "cachen", wird hiermit angezeigt, ob jemand auf der Remote-Seite (oder auf dem Pfad dazwischen) ein Caching durchführt, das Sie nicht möchten. Ihr Server könnte hier der eigentliche Schuldige sein! Zwischenspeichert es die Dateien, die es bereitstellt? Betcha ist es. . .
Mike Robinson

Antworten:

13

Halten Sie in Safari die Taste ( Shift) gedrückt, während Sie auf die Schaltfläche Aktualisieren klicken. Dadurch wird eine „harte“ Aktualisierung durchgeführt, die den lokalen Cache umgeht.

(Um den Cache in Safari schnell zu leeren, drücken Sie + + E, gehen Sie zum Datenschutz und klicken Sie auf "Alle Website-Daten entfernen" .)

Mathias Bynens
quelle
Ich werde es auf jeden Fall versuchen, wenn ich das nächste Mal auf dieses Problem stoße. Das ist eine Sache, die ich noch nicht getan habe. Ich habe versucht, Safari zurückzusetzen, den Cache zu leeren und mich sogar ab- und wieder anzumelden. Vielen Dank für die großartige Antwort!
Andrew Larsson
2
Safari ist in dieser Hinsicht etwas verwirrend, da die meisten anderen Browser + + verwenden R, um eine harte Aktualisierung durchzuführen. In Safari macht das nichts, es sei denn, Sie konzentrieren sich auf die Web Developer Tools, während Sie die Tastaturkombination ausführen.
Mathias Bynens
Ich werde Ihre Antwort erst einmal akzeptieren, bis jemand eine bessere Erklärung mit einer bewährten Lösung für das unwissende Caching findet, das ich erlebe. Vielen Dank!
Andrew Larsson
1
@AndrewLarsson Auf jeden Fall sollten Sie nach einer harten Aktualisierung immer die neueste Version erhalten, vorausgesetzt, es findet kein seltsames serverseitiges Caching statt. Was mich daran erinnert, welche Caching-Header sendet der Server zusammen mit der Datei? Möglicherweise liegt ein Problem mit der Serverkonfiguration vor.
Mathias Bynens
Das war eine andere Sache, an die ich dachte. Wenn der Server einen 304 zurückgibt, obwohl er tatsächlich neuen Inhalt zurückgeben sollte, muss dies in meiner Konfiguration geändert werden. Ich werde das untersuchen, wenn ich das nächste Mal auf dieses Problem stoße.
Andrew Larsson
2

Wenn Safari den Cache nicht löscht:

  1. Stellen Sie sicher, dass Sie sich von allen Webseiten abgemeldet und alle Safari-Registerkarten geschlossen haben.

  2. Öffnen Sie den Finder und wählen Sie in der Menüleiste Gehe zu → Zum Ordner .... (Alternativ können Sie die Tastenkombination verwenden, Command+ Shift+ g.)

  3. Kopieren Sie Folgendes und fügen Sie es in die Dropdown-Liste ein:

    ~/Library/Safari/Databases

  4. Löschen Sie alle Inhalte, die in diesem Ordner angezeigt werden, indem Sie alle Ordner markieren, mit der rechten Maustaste klicken und In den Papierkorb verschieben auswählen.

  5. Öffnen Sie Safari erneut und überprüfen Sie, ob alle Elemente jetzt gelöscht sind.

  6. Wenn bei der Suche nach den oben genannten Kriterien nichts angezeigt wird, suchen Sie bitte

    ~/Library/Safari/Local Storage

    und befolgen Sie die obigen Schritte 4 und 5, um den gesamten Inhalt zu löschen.

Suzanna
quelle
Beachten Sie, dass Safari oben zwar sagt, dass alle Website-Daten entfernt werden, dies jedoch nicht der Fall ist . Wenn Sie jedoch den Inhalt der verschiedenen hier genannten Ordner löschen, wird dies der Fall sein.
Mike Robinson
1

Ich hatte genau das gleiche Problem, außer dass ich bemerkte, dass es auch mit anderen Browsern passierte. Wie sich herausstellte, handelte es sich nicht um Safari oder OSX, sondern um einen vom Dienstanbieter erstellten Cache.

Um das Problem zu lösen, füge ich Code in meine Seite ein, um zu verhindern, dass er zwischengespeichert wird.

content = "no-cache"

"Einige Leute kennen sich mit dem Browser-Caching aus, werden aber dennoch vom ISP-Caching überrascht. Das ISP-Caching funktioniert ähnlich wie das Browser-Caching. Sobald Sie eine Website besucht haben, kann Ihr ISP diese Seiten zwischenspeichern, sodass sie anscheinend schneller geladen werden Wenn Sie sie das nächste Mal besuchen, besteht das Hauptproblem darin, dass Sie im Gegensatz zu Ihrem Browser-Cache diese temporären Dateien nicht löschen können, sondern warten müssen, bis der Cache Ihres Internetdienstanbieters abläuft und neue Kopien der Dateien angefordert werden Sie versuchen, Ihre Website zu entwickeln oder zu ändern - oder sich sogar neue Informationen anzusehen. "

James
quelle
Können Sie bitte den vollständigen Code wiederherstellen (wie in der ersten Version der Antwort)? Wenn Sie vier Leerzeichen am Zeilenanfang einfügen, sollte die Formatierung problemlos funktionieren.
Nohillside
Dies ist ein guter Punkt, und ich werde es beim nächsten Mal versuchen. Ich bin mir jedoch nicht sicher, wie gut dies auf die in der Frage beschriebene Situation zutreffen würde, da sich die von mir verwendeten Macs beide im selben Netzwerk befanden und dieselbe globale IP hatten (der ISP würde also nicht in der Lage sein, die zu bestimmen) Unterschied zwischen ihnen).
Andrew Larsson