Як я справді очищую кеш Safari?


16

Неодноразово виникало проблема, коли я редагував HTML на Mac. Проблема випливає з того, що я завантажую оновлений файл на мій сервер через FTP, і я перейду на веб-сайт в Safari. Єдине, що не було належним чином, це те, що Safari вже кешував веб-сторінку (стару версію), тож вона відображала б стару версію. Я подумав про себе і вирішив очистити кеш-пам'ять в Safari, сподіваючись, що це вирішить мою проблему. Очищення кеша просто дозволить веб-сайту перезавантажитись. Він як і раніше придумав стару версію файлу. Щоб довести, що файл на сервері був фактично оновлений, я потрапив на інший Mac в тій же мережі, і він відобразив нову версію файлу. Незалежно від того, скільки разів я оновлював чи очищав кеш-пам'ять або знову відкривав Safari, він завжди доставлятиме старий файл. Єдине інше рішення, яке я міг придумати, - це перезавантажити. Після перезавантаження Safari перезавантажив весь веб-сайт і відобразив нову версію файлу.

Мені справді просто цікаво, як відмити кеш Safari і змусити його правильно поводитися. Це те, що робить операційна система (у мене були подібні проблеми з файлами на моєму жорсткому диску)? Мені не хочеться весь час перезавантажуватись, щоб побачити нову версію файлу, тож чи я можу переконатися, що я переглядаю найновішу? Чи є папка тимчасового зберігання, яку я можу очистити вручну? Це трапляється зі мною досить часто (не страшно часто, але достатньо, щоб я це помітив), і єдине моє поточне рішення - перезавантажити.

У мене є дивні почуття (це насправді не думка, але завжди така легка можливість, що не має особливого сенсу), що вона походить з нижчого рівня.


Використовуєте хром (чи оперу)?
Підроблене ім’я

Я вважаю за краще використовувати Firefox, але я розвиваюсь, тому мені потрібно перевірити свій веб-сайт у всіх браузерах, включаючи Safari.
Ендрю Ларссон

Це може бути корисно використовувати curlкоманду командного рядка для запиту URL-адреси, щоб побачити, що він придумує. Стара сторінка чи нова? Оскільки curlвзагалі немає поняття "кешування", це підкаже вам, чи хтось на віддаленій стороні (або шлях між ними) робить кешування, якого ви не хочете. Тут ваш сервер може бути фактичним винуватцем! Це кешування файлів, які він обслуговує? Betcha це так. . .
Майк Робінсон

Відповіді:


14

У Safari натисніть кнопку ( Shift), натиснувши кнопку оновлення. Це здійснить "жорстке" оновлення, яке обійде локальний кеш.

(Щоб швидко очистити кеш-пам'ять у Safari, натисніть + + E, перейдіть до конфіденційності та натисніть "Видалити всі дані веб-сайтів" .)


Я напевно спробую, що наступного разу, коли я зіткнуся з цим питанням. Це одне, чого я ще не зробив. Я спробував скинути Safari, очистити кеш, навіть вийти з системи та знову увійти. Дякую за чудову відповідь!
Ендрю Ларссон

2
У цьому аспекті Safari трохи заплутано, оскільки більшість інших веб-переглядачів використовують + + Rдля жорсткого оновлення. У Safari це не робить нічого, якщо ви не зосереджуєтеся на Інструментах веб-розробників під час виконання комбінації клавіатур.
Mathias Bynens

Я зараз прийму вашу відповідь, поки хтось не прийде разом з кращим поясненням із перевіреним рішенням кешованого невігластва, яке я переживаю. Спасибі!
Ендрю Ларссон

1
@AndrewLarsson У будь-якому випадку, після жорсткого оновлення ви завжди повинні отримувати найновішу версію, припускаючи, що не відбувається ніякого дивного кешування на стороні сервера. Що нагадує мені, які заголовки кешування надсилає сервер разом із файлом? Це може бути проблема конфігурації сервера.
Матіас Байненс

Це було інше, про що я думав. Якщо сервер повертає номер 304, коли насправді він повинен повертати новий вміст, мені потрібно змінити конфігурацію. Я буду досліджувати це наступного разу, коли зустріну цю проблему.
Ендрю Ларссон

2

Коли Safari не очищає кеш:

  1. Переконайтесь, що ви вийшли з усіх веб-сторінок і закрили всі вкладки Safari.

  2. Відкрийте Finder і виберіть Перехід → Перейти до папки ... на панелі меню. (Крім того, ви можете використовувати комбінацію клавіш, Command+ Shift+ g.)

  3. Скопіюйте та вставте в спадне меню:

    ~/Library/Safari/Databases

  4. Видаліть увесь вміст у цій папці, виділивши всі папки та клацнувши правою кнопкою миші та виберіть Перемістити в кошик.

  5. Відкрийте Safari ще раз і перевірте, чи всі елементи тепер видалено.

  6. Якщо під час пошуку вищезазначених критеріїв нічого не з’являється, будь ласка, шукайте

    ~/Library/Safari/Local Storage

    і виконайте кроки 4 і 5 вище, щоб видалити весь вміст.


Зауважте, що, хоча Safari вище зазначає, що це "Видалити всі дані веб-сайтів", правда полягає в тому, що це насправді не так . Але якщо ви очистите вміст різних згаданих тут папок, це станеться.
Майк Робінсон

1

У мене була точно така ж проблема, за винятком того, що я помітив, що це відбувається і з іншими браузерами. Як виявляється, це не Safari чи OSX, це кеш, створений постачальником послуг.

Щоб вирішити проблему, я поклав код на свою сторінку, щоб запобігти її кешування.

content = "без кешу"

"Деякі люди знають про кешування браузера, але все-таки здивуються кешуванням ISP. Кешування ISP працює приблизно так само, як кешування браузера. Після відвідування веб-сайту ваш Інтернет-провайдер може кешувати ці сторінки, щоб вони швидше завантажувались наступного разу, коли ви їх відвідуєте. Основна проблема з цим полягає в тому, що на відміну від кешу веб-переглядача ви не можете видалити ці тимчасові файли, натомість вам доведеться чекати, поки закінчується термін дії кешу провайдерів, і він вимагає нових копій файлів. Це може бути дуже неприємно, якщо ви намагаєтесь розробити або внести зміни до свого веб-сайту - або навіть переглянути нову інформацію ".


Чи можете ви повернутись до повного коду (як це було у першій версії відповіді)? Якщо ви покладете чотири пробіли на початку рядка, проблем із форматуванням не повинно бути.
nohillside

Це хороший момент, і я спробую наступного разу. Однак я не впевнений, наскільки добре це стосуватиметься ситуації, яку я описав у запитанні, оскільки використовувані Macs були в одній мережі та мали однаковий глобальний IP-код (тому провайдер не зміг би визначити різниця між ними).
Ендрю Ларссон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.