Как мне действительно очистить кеш Safari?

16

Было много раз, когда я сталкивался с проблемой после редактирования HTML на Mac. Проблема связана с тем, что я загружаю обновленный файл на свой сервер через FTP, и я перехожу на веб-сайт в Safari. Единственное, что не работало должным образом, это то, что Safari уже кэшировал веб-страницу (старую версию), поэтому он отображал старую версию. Я подумал про себя и решил очистить кеш в Safari, надеясь, что это решит мою проблему. Очистка кэша просто позволяет перезагрузить веб-сайт. Он все еще придумал старую версию файла. Чтобы доказать, что файл на сервере действительно обновлялся, я попал на другой Mac в той же сети, и он отобразил новую версию файла. Независимо от того, сколько раз я обновлял или очищал кэш или открывал Safari, он всегда доставлял старый файл. Единственное другое решение, которое я мог придумать, это перезагрузить компьютер. После перезагрузки Safari перезагрузил весь веб-сайт и отобразил новую версию файла.

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

У меня странное чувство (на самом деле это не мысль, а очень незначительная возможность, которая не имеет особого смысла), что оно исходит из более низкого уровня.

Эндрю Ларссон
источник
Использовать хром (или оперу)?
Фальшивое имя
Я бы предпочел использовать Firefox, но я занимаюсь разработкой, поэтому мне нужно протестировать свой веб-сайт во всех браузерах, включая Safari.
Эндрю Ларссон
Может быть полезно использовать команду curlкомандной строки для запроса URL-адреса, чтобы увидеть, что он придумал. Старая страница или новая? Поскольку curlвообще не имеет понятия «кэширование», это скажет вам, если кто-то на удаленной стороне (или пути между ними) делает кэширование, которое вам не нужно. Ваш сервер просто может быть фактическим виновником здесь! Это кеширование файлов, которые он обслуживает? Бетча это так. , ,
Майк Робинсон

Ответы:

13

В Safari, удерживая нажатой клавишу ( Shift), нажимайте кнопку обновления. Это выполнит «жесткое» обновление, которое обходит локальный кеш.

(Чтобы быстро очистить кэш в Safari, нажмите + + E, перейдите в раздел «Конфиденциальность» и нажмите «Удалить все данные веб-сайта» .)

Матиас Биненс
источник
Я обязательно попробую это в следующий раз, когда столкнусь с этой проблемой. Это одна вещь, которую я еще не сделал. Я попытался сбросить Safari, очистить кеш и даже выйти и снова войти в систему. Спасибо за отличный ответ!
Эндрю Ларссон
2
Safari немного сбивает с толку в этом аспекте, так как большинство других браузеров используют + + Rдля выполнения жесткого обновления. В Safari это ничего не делает, если только вы не сосредоточили внимание на инструментах для веб-разработчиков при выполнении комбинации клавиш.
Матиас Биненс
Я собираюсь принять ваш ответ на данный момент, пока кто-нибудь не придет с лучшим объяснением с проверенным решением для невежественного кеширования, которое я испытываю. Благодарность!
Эндрю Ларссон
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 выше, чтобы удалить все содержимое.

Suzanna
источник
Обратите внимание, что, хотя Safari говорит выше, что он «удалит все данные веб-сайта», на самом деле это не так . Но если вы удалите содержимое различных папок, упомянутых здесь, это произойдет.
Майк Робинсон
1

У меня была точно такая же проблема, но я заметил, что это происходит и с другими браузерами. Как оказалось, это был не Safari или OSX, а кеш, созданный поставщиком услуг.

Чтобы решить эту проблему, я разместил код на своей странице, чтобы предотвратить его кэширование.

не содержание = «нет кэша»

«Некоторые люди знают о кэшировании в браузере, но все же ошарашиваются кэшированием провайдера. Кэширование провайдера работает почти так же, как и кэширование браузера. После посещения веб-сайта ваш провайдер может кэшировать эти страницы, чтобы они быстрее загружались. в следующий раз, когда вы их посещаете. Основная проблема заключается в том, что в отличие от кэша вашего браузера вы не можете удалить эти временные файлы, вместо этого вам придется подождать, пока не истечет срок действия кэша вашего интернет-провайдера, и он запросит свежие копии файлов. Это может быть очень неприятно, если Вы пытаетесь разработать или внести изменения в свой веб-сайт - или даже посмотреть на новую информацию. "

Джеймс
источник
Не могли бы вы вернуть полный код (как это было в первой версии ответа)? Если в начале строки поставить четыре пробела, проблем с форматированием быть не должно.
холме
Это хороший момент, и я попробую это в следующий раз. Однако я не уверен, насколько хорошо это будет относиться к ситуации, которую я описал в этом вопросе, потому что компьютеры Mac, которые я использовал, были в одной сети и имели один и тот же глобальный IP-адрес (поэтому провайдер не смог бы определить разница между ними).
Эндрю Ларссон