Як я можу змусити Chrome перестати кешувати переадресації?


415

Я працюю над веб-додатком, який використовує redirects(для гарних URL-адрес).

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

Це ускладнює їх усунення.

Наприклад , якщо перенаправити /thisдо /that, а потім змінити мій код НЕ перенаправляти /thisбільше. Google Chrome досі переспрямовується /that. Як і керування переспрямуванням, або щось таке. Чи є спосіб вимкнути це?


Чи все-таки це відбувається при перезапуску? Це повинно припинитися після перезапуску із нового сеансу
випадково

1
@ випадково, перезапуск хрому, здається, це виправляє. Однак у мене зазвичай відкрито багато вікон (тобто: документи, db-з'єднання, навчальні посібники, сторінка, над якою я працюю і т. Д.) Якщо я вирішую проблеми, може знадобитися кілька спроб, перш ніж з’ясувати, що відбувається. Я б не дуже вважав ідеальним все-таки закривати всі свої вікна. Дякую.
JD Isaacks

2
Вирішення проблеми: Під час тестування використовуйте переспрямування 302 (тимчасові), а після завершення перейдіть на 301 (постійний). (Caveat: Деякі браузери (Firefox) кешуватимуть навіть 302 переадресації, коли вони переходять з http до https версії тієї ж сторінки.)
TRiG

1
Введення нових www.mywebsite/?someparam=somevalueтворів для мене
Мустафа

1
@JDIsaacks ви можете використовувати Chrome виключно для налагодження (тобто Chrome Canary)
athosbr99

Відповіді:


329

Google Chrome кешуватиме ваші 301 переадресації . Щоб обійти це питання і зберегти вкладки відкритими, потрібно просто очистити кеш браузера.

Меню Chrome Меню Chrome> Налаштування> Показати розширені налаштування ...> Конфіденційність> Натисніть Очистити дані веб-перегляду ...

Що б ви не вибрали, переконайтесь, що "Кешовані зображення та файли" є галочкою.

Потім натисніть Очистити дані веб-перегляду, і ви зможете повторно протестувати.

Якщо ви тільки слідували за переадресацією, вам потрібно видалити дані лише за минулу годину.

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


3
Остання версія хрому, ця опція буде "Кешовані зображення та файли" замість "Очистити кеш"
Dan R

23
Я постійно переспрямовуюсь, навіть у режимі анонімного перегляду.
Гая

2
@ Гая, так, здається, це проблема в анонімному режимі Chrome. Якщо ви просто тестуєте, можливо, ви захочете використовувати для цього Firefox. Приватний перегляд Firefox працює чудово :)
chhantyal

10
Зауважте, що HTTP 301 переміщується постійно, тому кешування відповіді повністю дозволено. Якщо ви не хочете, щоб відповідь було кешовано, спробуйте 302 або 307. en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection
CVn

7
Комбінація клавіш для цього - Ctrl+ Shift+ Delete.
0xcaff

151

Це вірний доказовий спосіб очистити липку пам'ять Chrome для переадресацій, не очищаючи всі дані веб-перегляду (метод, використовуваний у поточній верхній відповіді):

  1. Відкрийте панель Інструменти для розробників ( optioncommandiна Mac або ctrlshiftiв Windows)

  2. Клацніть і потримайте значок перезавантаження введіть тут опис зображення

  3. Відкриється меню

    введіть тут опис зображення

  4. Виберіть у цьому меню 3-й варіант ("Порожній кеш-пам'ять та перезавантаження")

Ось чудове пояснення того, чим відрізняються ці 3 варіанти .

PS: Щоб уникнути необхідності виконувати ці кроки щоразу, коли за перенаправленням слідує Chrome: перевірте відключення кешу в DevTools, а поки DevTools відкритий, Chrome обійде кеш переспрямування (на цю відповідь )


1
Як бік: це не доступно на Mac.
Ар'ян

5
це не завжди видаляє кешовані переадресації
Claudiu Creanga

7
Він доступний на Mac, але меню доступне лише у тому випадку, якщо у вас відкриті інструменти розробки. Я припускаю, що це може бути те саме в Windows.
Персі

1
@Arjan це доступно на Mac, див. Superuser.com/questions/304589/…
Gaia

4
Mac OS X, Yosemite. Боротьба з http до https постійного переспрямування, тільки ця опція працювала. Усі інші, включаючи "Вимкнути кеш-пам'ять (поки DevTools відкритий)", не мали значення.
Карлес Сала

115

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


10
Так, це працює. example.comстає example.com?. Я найпростіший з групи
фреганте

2
Це приголомшливий трюк. Я припускаю, що ви можете користуватися цим нескінченно ?abc, ?abc2тощо ...
brentonstrine

2
Це не спрацювало для мене. Навіть використовуючи інший порт (: 8080), він змінився на https, що схоже на помилку Chrome.
jwadsack

Я вже роблю те саме, але це працює не завжди, іноді мені потрібно натиснути ctrl + shift + r (ctrl + f5), щоб отримати новішу версію веб-сторінки або часткові сторінки, що містяться всередині сторінки
M98

Якщо є кешированний код 301, це може не спрацювати з моменту його "запам'ятовування", щоб переслати все після TLD.
Дхаупін

92

Про це є помилка Chromium "wontfix" ,

Така очікувана поведінка.

Зауважте, що:

  1. Ви можете додати заголовки кеш-пам'яті до 301, і ми будемо слідувати за ними (термін дії тощо)
  2. Якщо ресурс, про який йде мова, є субресурсом, перезавантаження сторінки призведе до повторної перевірки переадресації з сервером.
  3. Вам не доведеться втрачати весь кеш. Просто слідуйте за переадресацією та видаляйте останню годину.

Що означає "видалити останню годину". засоби? Як це зробити?
Mikaël Mayer

1
@ MikaëlMayer При натисканні кнопки «Історія> Очистити дані браузера», ви можете вибрати тимчасові рамки для видалення даних ( «останній час», « на минулому тижні» і т.д.)
DBR

Немає..! Очищення даних веб-перегляду для веб-сайту не призведе до того, що поведінка переадресації 301 не буде видалена. Не в Chromium 64.0.x все одно
patricktokeeffe

Якщо очистити "1 годину", ви зможете вийти з усіх продуктів та облікових записів Google. Яка гарна порада ...
Лучано Фантуцці

> Вам не доведеться втрачати весь кеш. Просто слідуйте за переадресацією та видаляйте останню годину. Це все ще гірше, ніж "видалити останню переадресацію", яка є функцією, яку вони зафіксували.
rox0r

66

Якщо у DevTools увімкнена опція "Вимкнути кеш (поки DevTools відкрита)", достатньо просто відкрити DevTools, щоб обійти кеш переспрямування, не відкидаючи постійно сеанс.


9
Примітка: якщо devTools відкритий, є швидкий спосіб видалити кеш: натисніть кнопку оновлення правою кнопкою миші та виберіть повне перезавантаження;)
user65130

5
це не працює весь час. Я видалив увесь кеш-пам'ять і все ще переадресую. Тільки в режимі інкогніто він працює, і ви отримуєте послідовну поведінку
Клавді Креанга

2
Чому це не найкраще рішення? інші жахливі порівняно!
Брайан

4
Більше не працює ... Напевно, працював у 2014 році
лорд Лох.

@LordLoh. Я щойно спробував це на останній версії Chrome, і він працював точно так, як очікувалося. При закритих програмах перенаправлення кешується. Перезавантаження сторінки з відкритими інструментами не перенаправляє.
Майк Госсманн

20

Chrome кешує HTTP-переадресації та зупиняє перевірку на сайті, чи перенаправлення змінилось. Це може викликати роздратування, оскільки найпростіший спосіб виправити (відвідати сайт та примусити жорстке оновлення) використовувати не можна, оскільки переспрямування відбудеться перед тим, як отримати доступ до посилання. Ця проблема не виправлена .

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

  1. Відкрийте Інструменти для розробників Chrome dev-інструменти

  2. Клацніть у Налаштуваннях налаштування

  3. Поставте прапорець Відключити кеш-пам'ять (поки DevTools відкритий) відключити

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


2
Ви також знайдете опцію "відключити кеш" на вкладці мережі, це ж варіант. Для налагодження переспрямувань я б також запропонував використовувати "зберегти журнал".
Trendfischer

15

Перейдіть до chrome: // net-Internals і в крайній правій частині відкрийте спадне меню та виберіть "Очистити кеш". Щодо версії 48, це єдине, що працювало для мене, щоб очистити кешований 301 (постійне переадресація).

Оновлення: На жаль, станом на версію 71 (грудень 2018 р.) Google видалив функцію мережевого інтернету.


1
Працює на Chrome 56
spencer.sm

Досі працює на Chrome 67
SCO

Не працюйте в Chrome 71. Програма перегляду подій у мережі та пов'язані з ними функції видалено.
userlond

8

.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.


4
Не працював для мене в Chrome 25
swrobel

3
Це не працює, якщо переспрямування призначено для всіх сторінок. У мене є www. -> немає www. переадресація - значить, переадресація знаходиться на першому зверненні, тому я нічого не можу оновити. Кожен раз, коли я намагаюся перейти на сторінку, щоб оновити її, слід 301 - тоді вже пізно!
Ян Грінґер

1
@Ian Що робити, якщо ввести в адресному рядку view-source: www.example.com? Це дозволяє вам оновлюватись без перенаправлення?
Меттью Блекфорд

1
@MatthewBlackford AFAICT те саме, я фактично отримую джерело перенаправленої сторінки. Не впевнений, що мій тест був таким чудовим, хоча TBH. Я видалив історію переглядів, щоб "виправити" цю проблему.
Ian Grainger

2
Це працює лише для переадресацій JavaScript та метатегів.
Продовжуються

6

Як описано тут, може бути спричинено HSTS

Щоб обійти це, я зробив наступне.

У адресному рядку Chrome введіть "chrome: // net-Internals / # hsts" Внизу сторінки знаходиться текстове поле домену QUERY - переконайтеся, що ваш веб-сайт (localhost, наприклад) відомий веб-переглядачу. Якщо він є, ВИДАЛУЙТЕ localhost Домен, що використовує текстове поле вище, Ваш веб-сайт тепер повинен працювати за допомогою старого звичайного HTTP


1
Гей, дякую. Це дійсно допомагає при раптовому кеш-переспрямуванні https.
Руберойд

5

У Chrome або Firefox ви можете оновити переспрямування, ввівши "view-source: redirect.yoursite.com" і натиснувши клавішу Enter. Потім оновіть цю сторінку. Тепер це повинно змусити Chrome або Firefox оновити переадресацію.


Це єдина відповідь, яка працювала на мене.
JaredThirsk

4

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


3

Для розробки я рекомендую вам у Chrome відкрити налаштування DevTools і поставити галочку "Вимкнути кеш". Тоді 30x переадресації не кешуються, і ви можете налагоджувати .htaccess файли тощо! введіть тут опис зображення


Дивна річ, що цей варіант не допомагає. Я відключив кеш, але він все ще пише на вкладці мережі 301 Moved Permanently (from disk cache).
mgutt

Це те саме, що натиснути "відключити кеш", коли відкрита вкладка мережі. Ні - не очищає переспрямування.
bshea

1
  1. Йти до chrome://settings/search#clear%20browsing%20data

  2. Натисніть "Очистити дані веб-перегляду"

  3. Поставте прапорець "Кешовані зображення та файли" (і зніміть прапорці, якщо потрібно)

  4. Натисніть "Очистити дані веб-перегляду"

введіть тут опис зображення


1

найпростіший метод, жорстке оновлення. утримуйте Ctrl+ Rкілька секунд. Це очищає перенаправлення, а також статичні ресурси.


Чому б ти тримав його замість того, щоб просто натискати Ctrl+R?
gronostaj

@gronostaj Чи не моя відповідь була простою і простою ?? . Без тримання це було б просто нормальне оновлення. Що не очищає кешовані ресурси чи переадресації.
Ryu_hayabusa

Тримати це так само, як натиснути його кілька разів. Відкрийте Блокнот і утримуйте R, з’явиться кілька Rs. Це точно так само, але з Ctrl. Утримування Ctrl+ R- точний еквівалент натискання на нього десяток разів на секунду протягом декількох секунд. Це не розумно, він зловживає вбудованим механізмом оновлення та покладається на недокументовану поведінку.
gronostaj

@gronostaj Так, це недокументована поведінка. Прийнята відповідь для мене не працює. Тому я поділився цим тут. Я не бачу іншого способу очистити кешоване переадресацію. Якщо ви знаєте будь-які інші методи, сміливо діліться.
Ryu_hayabusa

Спробував і не працював (перенаправлення 301 на весь домен).
mgutt

1

Якщо ви не хочете втрачати весь кеш, і ваш переспрямування все ще застряг у кеші, ви можете спробувати відвідати view-source: версію URL-адреси. Це оновило кеш переспрямування тієї ж URL-адреси для мене.


0

Я спробував усі відповіді на цій сторінці, але жодна не працювала, поки я не запустив flushdns на вікно командного рядка Windows.

C:\Users\DBashyal>ipconfig /flushdns

Windows IP Configuration    
Successfully flushed the DNS Resolver Cache.

FYI, я вже Disable cacheперевірив, як згадувалося у цій відповіді.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.