393

Я работаю над веб-приложением, которое использует redirects (для красивых URL).

Я пытаюсь отладить логику, как работают перенаправления. Однако Google Chrome продолжает запоминать перенаправления и даже после того, как я изменяю код, перенаправления аналогичным образом.

Это очень затрудняет поиск и устранение неисправностей.

Например, если я перенаправляю /this в /that , затем меняю код на НЕ перенаправлять /this больше. Google Chrome все еще перенаправляет на /that . Как редирект кешируется или что-то. Есть ли способ отключить это?

17 ответов17

314

Google Chrome будет кэшировать ваши 301 перенаправления. Чтобы обойти это и сохранить открытые вкладки, вам просто нужно очистить кеш браузера.

Chrome Menu Chrome Menu > Настройки> Показать дополнительные настройки ...> Конфиденциальность> Нажмите Очистить данные просмотра ...

Что бы вы ни выбрали, убедитесь, что опция "Кэшированные изображения и файлы" включена.

Затем нажмите « Очистить данные просмотра», и вы сможете повторить тестирование снова.

Если вы только что выполнили перенаправление, вам нужно только удалить данные за прошедший час.

Кроме того, тестируйте и развивайте в режиме инкогнито. Там кеш сбрасывается после закрытия браузера.

138

Это верный способ очистки липкой памяти Chrome для перенаправлений без очистки всех данных просмотра (метод, используемый в текущем верхнем ответе):

  1. Откройте панель инструментов разработчика (команда option i на Mac или ctrl shift i в Windows)

  2. Нажмите и удерживайте значок перезагрузки

  3. Меню откроется

  4. Выберите третий вариант в этом меню ("Очистить кэш и полная перезагрузка")

Вот отличное объяснение того, как эти 3 варианта отличаются.

PS: Чтобы избежать необходимости выполнять эти шаги каждый раз, когда за перенаправлением следует Chrome: установите флажок отключить кэш в DevTools, и, пока DevTools открыт, Chrome будет обходить кэш перенаправления (согласно этому ответу)

111

Это не идеальное решение, но я смог запретить Chrome использовать кэшированное перенаправление путем передачи фиктивной строки запроса или добавления фиктивного параметра в существующую строку запроса. Например, добавить простой ? до конца URL, у которого не было q строки запроса, работало для меня на Chrome 30 на Max OS X.

90

Об этом есть ошибка "wontfix" в Chromium,

Это ожидаемое поведение.

Обратите внимание, что:

  1. Вы можете добавить заголовки контроля кеша в 301, и мы будем следовать им (срок действия и т.д.)
  2. Если рассматриваемый ресурс является подресурсом, перезагрузка страницы приведет к повторной проверке перенаправления на сервере.
  3. Вам не нужно терять весь кэш. Просто следуйте за редиректом и удалите последний час.
66

Если в DevTools включена опция «Отключить кэш (когда DevTools открыт)», то достаточно просто открыть DevTools, чтобы обойти кэш перенаправления, не теряя при этом сеанс.

19

Chrome кэширует перенаправления HTTP и прекращает проверку сайта, если перенаправление изменилось. Это может быть неприятно, так как самый простой способ исправить (посещение сайта и принудительное обновление) не может быть использован, потому что перенаправление произойдет до того, как вы перейдете по ссылке. Это не решит проблему.

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

  1. Откройте Инструменты разработчика Chrome DEV-инструменты

  2. Нажмите в настройках настройки

  3. Установите флажок Отключить кэш (пока открыт DevTools) запрещать

  4. Посетите сайт, который вы хотели, и проблема с кешем будет решена.

15

Перейдите в chrome://net-internals и в крайнем правом углу откройте раскрывающийся список и выберите "Очистить кэш". Начиная с версии 48, это было единственное, что помогло мне очистить кэшированный 301 (постоянное перенаправление).

Обновление: К сожалению, с версии 71 (декабрь 2018 г.) Google удалила функцию net-internals.

7

Домены .dev вынуждены использовать HTTPS в Chrome 63+

Начиная с Chrome 63, начиная с декабря 2017 года, все домены, заканчивающиеся на .dev (и .foo), вынуждены использовать HTTPS через предварительно загруженный заголовок HTTP Strict Transport Security (HSTS).

Подробнее об этом здесь: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

7

Чтобы очистить кэш перенаправления для одной страницы в Chrome, просмотрите исходный код и выполните полное обновление (CTRL + SHIFT + R) .

Это работает, так как исходный браузер не выполняет автоматически перенаправления 301.

6

Как описано здесь, может быть вызвано HSTS

Чтобы обойти это, я сделал следующее.

В адресной строке Chrome введите «chrome://net-internals/# hsts». В самом низу страницы находится текстовое поле домена QUERY - убедитесь, что ваш сайт (например, localhost) известен браузеру. Если это так, УДАЛИТЕ домен localhost, используя текстовое поле выше. Ваш сайт теперь должен работать с использованием старого доброго HTTP

4

Если вы просто хотите убедиться, что перенаправления работают должным образом, возможно, проще использовать инструмент командной строки, такой как wget или аналогичный. Вы можете проверить заголовки ответа и перенаправления не кэшируются.

4

В Chrome или Firefox вы можете обновить перенаправление, набрав «view-source:redirect.yoursite.com» и нажав Enter. Затем обновите эту страницу. Теперь это должно заставить Chrome или Firefox обновить перенаправление.

2

Для разработки рекомендую в Chrome открыть настройки DevTools и поставить галочку "Отключить кеш". Тогда 30-кратные перенаправления не кэшируются, и вы можете отлаживать файлы .htaccess и так далее!

1

Самый простой метод, жесткий освежить. удерживайте Ctrl + R несколько секунд. Это очищает перенаправления, а также статические ресурсы.

1
  1. Перейдите в chrome://settings/search#clear%20browsing%20data

  2. Нажмите "Очистить данные просмотра"

  3. Отметьте "Кэшированные изображения и файлы" (и снимите отметку с остальных, если хотите).

  4. Нажмите "Очистить данные просмотра"

0

Если вы не хотите потерять весь кеш, а ваше перенаправление все еще застряло в кеше, вы можете попробовать посетить URL-адрес view-source: version. Это обновило кеш перенаправления того же URL для меня.

0

Я перепробовал все ответы на этой странице, но ни один из них не работал, пока я не запустил flushdns в окне командной строки Windows.

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

К вашему сведению, я уже проверил Disable cache как упоминалось в этом ответе.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .