Comment puis-je vraiment vider le cache de Safari?

16

Il y a eu d'innombrables fois où je rencontre un problème après avoir modifié HTML sur un Mac. Le problème vient de mon téléchargement du fichier mis à jour sur mon serveur via FTP, et je vais naviguer vers le site Web dans Safari. La seule chose qui n'agissait pas correctement était que Safari avait déjà mis en cache la page Web (l'ancienne version), de sorte qu'elle afficherait l'ancienne version. Je me suis dit et j'ai décidé de vider le cache dans Safari en espérant que cela résoudrait mon problème. Vider le cache laisse simplement le site Web se recharger. Il est toujours venu avec l'ancienne version du fichier. Pour prouver que le fichier sur le serveur a bien été mis à jour, je me suis installé sur un autre Mac sur le même réseau et il a affiché la nouvelle version du fichier. Peu importe le nombre de fois où j'ai actualisé ou effacé le cache ou rouvert Safari, il restait toujours l'ancien fichier. La seule autre solution que j'ai pu trouver était de redémarrer. Après un redémarrage, Safari a rechargé l'intégralité du site Web et affiché la nouvelle version du fichier.

Je me demande vraiment comment vider le cache de Safari et le faire se comporter correctement. Est-ce quelque chose que le système d'exploitation fait (j'ai eu des problèmes similaires avec des fichiers sur mon disque dur aussi)? Je ne veux pas avoir à redémarrer tout le temps juste pour voir une nouvelle version d'un fichier, alors existe-t-il un moyen de s'assurer que je consulte la plus récente? Existe-t-il un dossier de stockage temporaire que je peux effacer manuellement? Cela m'arrive assez souvent (pas terriblement fréquent, mais assez pour que je le remarque), et ma seule solution actuelle est de redémarrer.

J'ai un sentiment étrange (ce n'est pas vraiment une pensée, mais une possibilité si légère qui n'a pas beaucoup de sens) qu'elle provient d'un niveau inférieur.

Andrew Larsson
la source
Utiliser du chrome (ou de l'opéra)?
Fake Name
Je préfère utiliser Firefox, mais je développe, donc je dois tester mon site Web sur tous les navigateurs, y compris Safari.
Andrew Larsson
Il peut être utile d'utiliser la curlcommande de ligne de commande pour demander une URL, pour voir ce qu'elle propose. L'ancienne page ou la nouvelle? Étant donné qu'il curln'a aucun concept de "mise en cache" quoi que ce soit, cela vous dira si quelqu'un du côté distant (ou le chemin entre) fait la mise en cache que vous ne voulez pas. Votre serveur pourrait bien être le véritable coupable ici! S'agit-il de la mise en cache des fichiers qu'il sert? C'est Betcha. . .
Mike Robinson

Réponses:

13

Dans Safari, maintenez la touche ( Shift) enfoncée tout en cliquant sur le bouton d'actualisation. Cela effectuera un rafraîchissement «dur», qui contourne le cache local.

(Pour effacer rapidement le cache dans Safari, appuyez sur + + E, accédez à Confidentialité et cliquez sur «Supprimer toutes les données du site Web» .)

Mathias Bynens
la source
J'essaierai certainement la prochaine fois que je rencontrerai ce problème. C'est une chose que je n'ai pas encore faite. J'ai essayé de réinitialiser Safari, de vider le cache et même de me déconnecter et de me reconnecter. Merci pour la bonne réponse!
Andrew Larsson
2
Safari est un peu déroutant à cet égard, car la plupart des autres navigateurs utilisent + + Rpour effectuer une actualisation matérielle. Dans Safari, cela ne fait rien, sauf si vous concentrez les outils de développement Web lors de l'exécution du combo clavier.
Mathias Bynens
Je vais accepter votre réponse pour l'instant jusqu'à ce que quelqu'un vienne avec une meilleure explication avec une solution éprouvée à la mise en cache ignorante que je rencontre. Merci!
Andrew Larsson
1
@AndrewLarsson Quoi qu'il en soit, après une actualisation importante, vous devriez toujours obtenir la dernière version, en supposant qu'il n'y ait pas de mise en cache côté serveur bizarre. Ce qui me rappelle quels en-têtes de mise en cache le serveur envoie-t-il avec le fichier? Il peut s'agir d'un problème de configuration du serveur.
Mathias Bynens
C'était une autre chose à laquelle je pensais. Si le serveur renvoie un 304 alors qu'en fait, il devrait renvoyer du nouveau contenu, ce serait quelque chose que je devrais changer dans ma configuration. J'examinerai cela la prochaine fois que je rencontrerai ce problème.
Andrew Larsson
2

Lorsque Safari ne vide pas le cache:

  1. Assurez-vous que vous vous êtes déconnecté de toutes les pages Web et que vous avez fermé tous les onglets Safari.

  2. Ouvrez le Finder et sélectionnez Aller → Aller au dossier ... dans la barre de menus. (Vous pouvez également utiliser le raccourci clavier, Command+ Shift+ g.)

  3. Copiez et collez les éléments suivants dans la liste déroulante:

    ~/Library/Safari/Databases

  4. Supprimez tout le contenu qui apparaît dans ce dossier en mettant en surbrillance tous les dossiers et en cliquant avec le bouton droit et en sélectionnant Déplacer vers la corbeille.

  5. Ouvrez à nouveau Safari et vérifiez que tous les éléments sont maintenant supprimés.

  6. Si rien n'apparaît lorsque vous recherchez les critères ci-dessus, veuillez rechercher

    ~/Library/Safari/Local Storage

    et suivez les étapes 4 et 5 ci-dessus pour supprimer tout le contenu.

Suzanna
la source
Notez que bien que Safari dise, ci-dessus, qu'il "supprimera toutes les données du site Web", la vérité est que ce n'est vraiment pas le cas . Mais si vous purgez le contenu des différents dossiers mentionnés ici, ce sera le cas.
Mike Robinson,
1

J'ai eu exactement le même problème, sauf que j'ai remarqué que cela se produisait également avec d'autres navigateurs. Il s'avère que ce n'était pas Safari ou OSX, c'était un cache créé par le fournisseur de services.

Pour résoudre le problème, j'ai mis du code dans ma page pour l'empêcher d'être mis en cache.

content = "no-cache"

"Certaines personnes connaissent la mise en cache du navigateur, mais sont toujours prises par la mise en cache du FAI. La mise en cache du FAI fonctionne de la même manière que la mise en cache du navigateur. Une fois que vous avez visité un site Web, votre FAI peut mettre en cache ces pages afin qu'elles semblent charger plus rapidement le la prochaine fois que vous les visiterez. Le principal problème est que, contrairement au cache de votre navigateur, vous ne pouvez pas supprimer ces fichiers temporaires, mais vous devez attendre que le cache de votre FAI expire et qu'il demande de nouvelles copies des fichiers. Cela peut être très frustrant si vous essayez de développer ou d'apporter des modifications à votre site Web - ou même de consulter de nouvelles informations. "

James
la source
Pouvez-vous s'il vous plaît remettre le code complet (comme vous l'aviez dans la première version de la réponse)? Si vous mettez quatre espaces au début de la ligne, le formatage ne devrait pas poser de problème.
nohillside
C'est un bon point, et je vais l'essayer la prochaine fois. Cependant, je ne sais pas dans quelle mesure cela s'appliquerait à la situation que j'ai décrite dans la question, car les Mac que j'ai utilisés étaient tous les deux sur le même réseau et avaient la même IP globale (de sorte que le FAI ne serait pas en mesure de déterminer le différence entre eux).
Andrew Larsson