題 如何讓Chrome停止緩存重定向?


我正在使用正在使用的Web應用程序 redirects (對於漂亮的URL)。

我試圖以重定向工作的方式調試邏輯。但是,谷歌瀏覽器會記住重定向,甚至在我更改代碼後,也會以相同的方式重定向。

這使得排除故障變得非常困難。

例如,如果我重定向 /this 至 /that,然後將我的代碼更改為NOT重定向 /this 了。 Google Chrome仍在重定向到 /that。就像重定向被緩存一樣。有沒有辦法把它關掉?


377
2018-06-30 17:05


起源


重啟時是否還會發生這種情況?在重新啟動新會話後應該停止 - random♦
@random,重新啟動chrome確實似乎解決了它。但是,我通常打開很多窗口(例如:docs,數據庫連接,教程,我正在處理的頁面等等)。如果我正在排除故障,可能需要多次嘗試才能搞清楚最新情況。我不會真的認為必須繼續關閉所有窗戶是理想的。謝謝。 - JD Isaacks
解決方法:在測試時使用302(臨時)重定向,並在完成後切換到301(永久)。 (警告:當某些瀏覽器(Firefox)從同一頁面的http轉換為https版本時,它們甚至會緩存302重定向。) - TRiG
輸入新的 www.mywebsite/?someparam=somevalue 適合我 - Mustafa
@JDIsaacks你可以專門使用Chrome進行調試(即Chrome Canary) - athosbr99


答案:


谷歌Chrome將 緩存您的301重定向。要解決這個問題,並保持標籤打開,您只需清除瀏覽器緩存即可。

Chrome菜單 Chrome Menu >設置>顯示高級設置...>隱私>單擊 清除瀏覽數據...

無論您選擇其他什麼,請確保“緩存的圖像和文件”是一個選中的選項。

然後點擊 清除瀏覽數據 你應該能夠再次重新測試。

如果您剛剛執行了重定向,則只需刪除過去一小時的數據。

或者,以隱身模式進行測試和開發。在瀏覽器關閉後刷新緩存。


308
2018-06-30 17:29



最新版本的chrome,此選項將是“緩存的圖像和文件”,而不是“清空緩存” - Dan R
即使在隱身模式下,我也會不斷重定向。 - Gaia
@ Gaia是的,這似乎是Chrome隱身的問題。如果您只是在測試,可能需要使用Firefox。 Firefox私密瀏覽工作正常:) - chhantyal
請注意,HTTP 301是 永久移動 所以完全允許緩存響應。如果您不希望緩存響應,請嘗試302或307。 en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection - α CVn
這個的鍵盤快捷方式是 Ctrl + Shift + Delete。 - 0xcaff


這是在不清除所有瀏覽數據的情況下清除Chrome重定向內存的確定方法 (當前最佳答案使用的方法):

  1. 打開 開發者工具 小組(選項命令一世 在Mac上,或 CTRL轉移一世 在Windows上)

  2. 單擊並按住重新加載圖標 enter image description here

  3. 菜單將打開

    enter image description here

  4. 從此菜單中選擇第3個選項(“清空緩存和硬重新加載”)

PS:為了避免每次Chrome重定向都要執行這些步驟:檢查DevTools中的禁用緩存,並在DevTools打開時Chrome將繞過重定向緩存(每個 這個答案


132
2018-01-26 18:12



暫且不說:這在Mac上不可用。 - Arjan
這並不總是刪除緩存的重定向 - Claudiu Creanga
它在Mac上可用,但只有在開放開發工具時才能使用菜單。我認為這在Windows上可能是相同的。 - Percy
@Arjan它可以在Mac上看到 superuser.com/questions/304589/... - Gaia
Mac OS X,Yosemite。使用http與https永久重定向進行戰鬥,只有此選項有效。所有其他的,包括“禁用緩存(當DevTools打開)”,沒有任何區別。 - Carles Sala


這不是一個完美的解決方案,但我能夠通過傳遞偽造的查詢字符串或向現有查詢字符串添加虛假參數來阻止Chrome使用緩存重定向。例如,添加一個簡單的 ? 在Max OS X上的Chrome 30上沒有q查詢字符串的URL的末尾。


111
2017-10-16 06:10



是的,這很有效。 example.com 變 example.com?。我是最容易的人 - bfred.it
這是一個很棒的技巧。我假設你可以無限期地使用它 ?abc, ?abc2 等等... - brentonstrine
這對我不起作用。即使使用不同的端口(:8080),它也會更改為https,這似乎是Chrome的錯誤。 - jwadsack
我已經做了同樣的事情,但它總是不起作用,有時我需要按ctrl + shift + r(ctrl + f5)來獲取更新版本的網頁,或者包含在頁面內的部分頁面 - M98
如果存在通配符緩存301,則可能無效,因為它“記住”在TLD之後轉發所有內容。 - dhaupin


有個 “wontfix”關於這個的Chromium bug

這是預期的行為。

注意:

  1. 您可以將緩存控制標頭添加到301,我們將遵循它們(到期等)
  2. 如果有問題的資源是子資源,則重新加載頁面將導致重定向與服務器重新驗證。
  3. 您不必丟失整個緩存。只需按照重定向並刪除最後一小時。

90
2017-10-09 07:16



什麼是“刪除最後一小時”。手段?怎麼做? - Mikaël Mayer
@MikaëlMayer當您單擊“歷史記錄>清除瀏覽數據”時,您可以選擇刪除數據的時間範圍(“過去一小時”,“過去一周”等) - dbr
沒有..!清除網站的瀏覽數據 不 刪除301重定向行為。反正不是在Chromium 64.0.x中 - patricktokeeffe
清除“1小時”會讓您從所有Google產品和帳戶中退出。多好的建議...... - Luciano Fantuzzi
>您不必丟失整個緩存。只需按照重定向並刪除最後一小時。這仍然比“刪除最後一次重定向”更糟糕,這是他們不會修復的功能。 - rox0r


如果你在DevTools中啟用了“禁用緩存(當DevTools打開時)”選項,那麼只需打開DevTools就足以繞過重定向緩存,而不會不斷地丟棄你的會話。


63
2018-02-27 15:14



注意:如果devTools打開,有一種快速刪除緩存的方法:單擊右鍵單擊刷新按鈕,然後選擇完全重新加載 ;) - user65130
這不會一直有效。我刪除了所有緩存並仍然重定向。只有使用隱身模式才有效,並且您可以獲得一致的行為 - Claudiu Creanga
為什麼這不是最佳解決方案?通過比較,其他的都很糟糕! - Brian
不再工作......可能在2014年工作 - Lord Loh.
@LordLoh。我剛剛在最新版本的Chrome上嘗試了這一點,它的工作方式完全符合預期。關閉devtools後,將重定向重定向。在打開工具的情況下重新加載頁面不會重定向。 - Mike Gossmann


如果重定向已更改,Chrome會緩存HTTP重定向並停止檢查網站。這可能令人沮喪,因為無法使用最簡單的修復方法(訪問網站並強制進行硬刷新),因為重定向將在您訪問鏈接之前發生。這是一個 不會解決問題

要解決此問題,您可以清除瀏覽數據,如上所述 這裡 或者您可以按照以下步驟操作,避免丟失歷史記錄。

  1. 打開Chrome開發者工具 dev-tools

  2. 單擊“設置” settings

  3. 校驗 禁用緩存(當DevTools打開時) disable

  4. 訪問您想要的網站,緩解問題將得到解決。


19
2018-06-06 21:06



您也可以在網絡選項卡上找到“禁用緩存”選項,它是相同的選項。對於調試重定向,我建議使用“保留日誌”。 - Trendfischer


轉到chrome:// net-internals並在最右邊打開下拉列表並選擇“Clear Cache”。從版本48開始,這是我唯一能夠清除緩存301(永久重定向)的東西。


15
2018-01-29 20:30



適用於Chrome 56 - spencer.sm
這對我有用,謝謝 - David Van De Meer
仍適用於Chrome 67 - SCO


要清除Chrome中單個頁面的重定向緩存, 查看來源 並做一個艱難的刷新 (CTRL + SHIFT + R)

這適用於源瀏覽器不會自動遵循301重定向。


7
2018-03-17 03:39



在Chrome 25中沒有為我工作 - swrobel
如果重定向是為了這不起作用 所有 頁面。我有一個www。 - >沒有www。重定向 - 所以重定向是第一次點擊,所以我不能刷新任何東西。每次我嘗試去刷新頁面都跟著301 - 那就太晚了! - Ian Grainger
@Ian如果您輸入地址欄view-source:www.example.com怎麼辦?這會讓你刷新而不被重定向嗎? - Matthew Blackford
@MatthewBlackford AFAICT同樣的事情,我實際上得到了重定向頁面的來源。不確定我的測試是那麼好,雖然TBH。我已刪除瀏覽歷史記錄以“修復”此問題。 - Ian Grainger
這僅適用於javascript和metatag重定向。仍然遵循HTTP重定向 - bfred.it


如上所述 這裡 可能是由HSTS引起的

為了解決這個問題,我做了以下幾點。

在Chrome地址欄中輸入“chrome:// net-internals / #hsts”   頁面底部是QUERY域文本框 - 驗證您的站點(例如localhost)   已知瀏覽器如果是,請使用刪除localhost域   您網站上方的文本框現在應該使用普通的舊HTTP


6
2018-03-19 13:09



嘿,謝謝。這真的有助於突然的https重定向緩存。 - Ruberoid


.dev域名被迫在Chrome 63+上使用HTTPS

從2017年12月的Chrome 63開始,所有以.dev(和.foo)結尾的域都被迫通過預加載的HTTP嚴格傳輸安全(HSTS)標頭使用HTTPS。

更多相關信息: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


5
2017-12-12 13:06



這肯定是我的罪魁禍首!我花了兩個小時試圖找出到底發生了什麼。感謝您發布此內容! - Jabari
這個答案需要更多的選票。這可能不是提問者所具有的問題,但是對於許多開發者來說,他們會在搜索結果中找到答案。 - bp.


如果您只想檢查重定向是否按預期工作,則可能更容易使用命令行工具,如wget或類似工具。您可以檢查響應標頭,並且不會緩存重定向。


4
2018-04-10 19:29