題 如何在Google Chrome中強制刷新而不使用緩存? [重複]


這個問題在這裡已有答案:

Chrome是否具有與Firefox的Ctrl + F5相同的刷新效果?我好像找不到一個。

昨晚我改變了我的gravatar,在Ctrl + F5刷新後我可以在Firefox中看到新版本,但Chrome似乎頑固地掛在舊的Gravatar上。我想我可以手動清除緩存,但如果有一個鍵盤命令來執行它我想知道它是什麼(因為它也有助於Web開發)。


289
2017-12-31 15:29


起源


CTR + R然後是CTRL + F5,一次或兩次 - 通常會排除問題。或者在開發人員工具中禁用緩存 - > Sprog(右側) - >網絡 - 禁用緩存..重新加載頁面並嘗試禁用它。 - ppumkin
Chrome中添加了一項很棒的新功能,可以強制刷新 - superuser.com/a/512833/92862 - Coops
安裝“Clear Cache Shortcut”擴展。 - Ross Rogers


答案:


Chrome文檔 說明 按Ctrl+F5 要么 轉移+F5 應該“重新加載當前頁面,忽略緩存內容”。

如果它不起作用,你可以 提交錯誤報告,但看起來很多其他人都有同樣的問題。

[此問題的現有錯誤日誌]作為重複關閉,問題保持:

[問題:94090]


191
2017-12-31 15:36



看起來它可能部分是Gravatar的錯。在我的圖片的標題中,他們正在發送 Last-Modified: Fri, 20 Jun 2008 12:25:23 GMT。我想這是我上傳舊Gravatar的日期,或者是我為Gravatar註冊的日期。瀏覽器必須看到並且想“哦,這個新文件具有相同的最後修改日期,所以我只會使用緩存的日期。”如果Chrome在刷新忽略緩存上執行此操作,則會出現錯誤,但Gravatar發送錯誤的最後修改也是一個錯誤。我聯繫了雙方。 :) - Kip
我從javascript中異步加載腳本,Chrome似乎繼續使用緩存版本,即使在ctrl-f5之後,等等。清除緩存有效。但另一種解決方案是打開隱身窗口(ctrl-shift-n),因為隱身模式將不會使用緩存。 - Tauren
哈哈Chrome是超緩存的,我能克服它的唯一方法就是至少兩次擊中Shift + F5(真的)。 - Halil Özgür
Chrome團隊應該對這個錯誤隊列中的錯誤感到尷尬2年多。我非常失望。 - Brian Webster
絕對不行。 Chrome有時會非常糟糕。 - iconoclast


在打開的開發人員工具中(按Ctrl+SHFT+一世 要么 ++一世):

  1. 選擇 網絡 標籤
  2. 啟用 禁用緩存 複選框。
  3. 請勿關閉開發人員工具 - 否則將重新啟用緩存。

enter image description here


194
2018-03-29 20:29



+1我希望我能不止一次地贊成這一點。謝謝!! - MrMisterMan
但為什麼沒有捷徑可以觸發這個! - Coops
請注意,只有在Developer Tools打開時才會禁用緩存。如果您關閉它,您的緩存將再次處於活動狀態。 - Icode4food
是!這應該是公認的答案!這讓我在開發過程中免於永無止境的頭痛。 - ceyko
在較新的開發人員工具中(也可以由F12觸發),可以在“網絡”選項卡中找到“禁用緩存”設置。 - anre


在Mac上,它是Shift + Command + R,或者在單擊重新加載按鈕時按住Shift鍵(而不是Command + R或常規點擊以進行常規刷新)。

更多細節:

對於Shift + Command + R,只需忽略緩存並請求資源,就像不存在緩存一樣。

對於Command + R,Chrome將發布 If-Modified-Since 要么 Etag 請求到Web服務器, 即使是實際緩存的東西。對於大多數(如果不是全部)內容,服務器應該響應 304 Not Modified。大多數(如果不是全部)現代瀏覽器都是如此。

強制依賴緩存(沒有瀏覽器甚至要求可能的更改)的唯一方法似乎是單擊網頁上的鏈接,或者通過跟踪書籤鏈接,或者進入URL位置欄並點擊返回那裡( Command + L,返回)。

但是:Chrome中一個長期存在的已知問題, Chrome Forced Refresh不會忽略緩存 (而且是最近的 重新加載/刷新不刷新),或者實際上是WebKit中的一個功能, 即使重新加載包含文檔,也不會重新驗證動態插入的子資源,使Chrome使用上述方法時不清楚所有相關的緩存。鉻開發商 說明

開發人員工具的網絡選項卡顯示加載時所有資源的瀑布。右側有兩條垂直線...其中一條在懸停時標有“Load event fired”。在該點之後加載的任何內容都不是頁面的正式部分(頁面可以繼續發出幾小時的請求)[...]因此不會使用f5的任何組合“刷新”。這是設計的。
[...]
  高速緩存 [任何資源,在“Load event fired”行之前和之後] 由響應的HTTP標頭確定,而不是由發出請求的時間確定。

請注意@ ChromiumDev的推文

Chrome DevTools的“禁用緩存”使磁盤緩存失效(非常適合開發!),但僅在devtools可見時才會生效。


97
2018-05-03 07:51



感謝您詳細解答。可能對觀眾來說太技術性,但我非常重視它。 - sholsinger
Command-Shift-R在當前的Chrome穩定版中無效。 - Olivier
它似乎在我的Mac上工作正常,@ olouv。您是否查看了Developer Tool的Network選項卡? (的確,在這個網站上有一些Chrome仍然會發布的資源 If-Modified-Since 請求,但這些資源是由JavaScript請求的,而不是HTML解析器。此外,由於頁面本身的緩存只設置為一分鐘,服務器時間和本地時間的微小差異可能也會搞亂?) - Arjan
謹防,注意一個兩年前,但仍然是Chrome當前的錯誤: Chrome Forced Refresh不會忽略緩存。 - Arjan


  1. 拉起控制台
  2. 單擊右下角的cog圖標
  3. 勾選[常規>禁用緩存]
  4. 重新加載頁面(但是)!
  5. 保持開發人員工具的開放性 (UPDATE)


22
2017-07-18 07:13



5。 保持開發人員工具的開放性。 - Arjan
哇!這是一些至關重要的信息! - sobi3ch
很棒,事實上,即使我關閉了devtool,它總是清除緩存。 - diyism


問題有點舊,但在最新版本的Chrome中

  • 打開 Developer tools 運用 F12 要么 按Ctrl+轉移+一世
  • 右鍵單擊“刷新”按鈕,然後選擇 空緩存和硬重載

這將繞過緩存並完全重新加載頁面。

醫生說 按Ctrl+F5 要么 轉移+F5 但不幸的是,到目前為止,這個bug還沒有解決:-(


15
2017-11-09 12:52



暫且不說:這只是Windows。 (而且我讀過它只在開發人員工具打開時才可用?) - Arjan
只有當開發人員工具打開時才有效,正如您所說的Arjan。 - mgkrebbs
您也可以在單擊刷新按鈕的同時按住SHIFT鍵 - Bolli


我在服務器上有更新的文件(圖像和完整的html頁面),並且chrome中的任何鍵組合似乎都強制獲取它們。

當我需要強制刷新時,我依靠chrome的隱身模式 - CTRL-SHIFT-N。

注意 在隱身窗口內的CTRL-R或CTRL-F5似乎也不起作用。您必須關閉並重新打開隱身窗口 - 因此我依賴快捷方式 - CTRL-W關閉,CTRL-SHIFT-N重新打開。


9
2017-07-08 08:36



你的意思是“重新打開一個隱身標籤”,而不是窗口? - mgol
有趣的是,對我來說,CTRL-SHIFT-N打開一個新窗口,而不僅僅是一個標籤 - 是不是總是如此? - Daniel Gill


肯定沒有像其他瀏覽器那樣在Chrome中執行此操作的簡單方法。文檔可能會說CTRL + F5或SHIFT + F5應該重新加載並忽略緩存,但它根本不會。我有一個閃存幻燈片,它將設置/配置存儲在.xml文件中,在更新XML文件後,除非我清除緩存,否則Chrome仍會加載緩存版本。更新幻燈片時我總是需要運行另一個瀏覽器,因此我不必一直清除Chrome緩存。


6
2017-09-02 04:23



Flash緩存與Chrome完全不同。 - Joshua
@Joshua除非這個人說,它適用於其他瀏覽器,但不適用於Chrome。不要忘記Chrome附帶它 擁有 構建Flash播放器。 - Camilo Martin
@CamiloMartin ...它也有自己獨立的緩存。等等......你是否認真回應了一篇超過2年的帖子?啊。我拿了誘餌。 - Joshua
@Joshua哦,你說得對,我沒有意識到:) - Camilo Martin


Ctrl - Shift - 刪除將允許您刪除前一小時的緩存。這將確保您下次重新加載網站時它是新鮮的。


4
2018-01-23 17:13