2011-08-08 92 views
85

有什麼辦法可以禁用這個'功能'嗎?Firefox 5'緩存'301重定向

例如,如果一個請求到http://localhost/foo.html由我指定爲「301」到根地址,所有後續請求foo.html繞過Web服務器完全與ffox 5將檢查它的高速緩存,讀取這個網址是'301'ed以前,甚至沒有檢查改變重定向。

如果我從301'ing停止foo.html,我必須從發生清除Firefox的緩存,以「修復」這一點。

瀏覽器,IE和Firefox以前的版本不這樣做。

+0

甚至刪除緩存中不解決這個錯誤,我(火狐17.0.1和Linux)。 –

+2

@ kirdie在「清除近期歷史記錄」對話框中,確保將時間範圍設置爲「全部」,然後選中「緩存」複選框。如果選擇的時間範圍比訪問重定向的URL更新,緩存條目將不會被清除。 – Kelvin

+13

@ kirdie和每個人都有同樣的問題:用Ctrl + H查看歷史記錄。然後右鍵點擊該網站並選擇「刪除該網站的所有歷史記錄」(或類似的東西)。那爲我做了。 –

回答

43

301只是一個普通的可緩存響應代碼。 http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.2說:

This response is cacheable unless indicated otherwise. 

所以,如果你不希望它做緩存,服務器需要通過用於控制緩存行爲正常的頭以其他方式表示。

您也可以clear the cache manually

+7

我相信這會更直接地使用302,而不是默認情況下可緩存。 –

+21

@Boris Zbarsky:問題不在於'我如何清除緩存'而不是'如何防止緩存首先發生寫入'? –

+4

這個問題肯定是「我如何讓自己不必清除緩存」給我! –

1

301永久地移動,並且可緩存的,所以我認爲這是對瀏覽器中的「正確」的行爲。你應該使用303 See Other

+5

IE和Chrome緩存303和HTTP規範正在更改爲允許緩存它。請參閱http://tools.ietf.org/html/draft-ietf-httpbis-p2-semantics-15上的草稿。所以防止重定向緩存的唯一安全方法是設置明確的緩存控制頭。 –

+0

啊,很高興知道。謝謝。 – jsz

24

我剛剛經歷過這個問題,對我來說這是兩個問題。

這種特殊的域名是通過CloudFlare的路由,所以我不得不將其設置爲發展模式。我認爲Cloudflare緩存了301重定向,因此它不必將請求發送到服務器。這一步可能不適用於你。

然後,通過轉至工具 - >選項,單擊右上角的高級按鈕,選擇網絡選項卡,然後單擊緩存Web內容下的立即清除,即可清除我的Firefox緩存(版本11)。請注意,我的緩存已設置爲0,但我仍然需要單擊「立即清除」按鈕以使重定向停止緩存。

我很想知道,如果任何人都可以驗證這一點。

+2

+1。您關於清除Firefox緩存的說明確實爲我解決了這個問題(作爲用戶/客戶端,而不是網站所有者),因爲某個特定的URL沒有被Firefox更新。謝謝。 –

+1

您可以使用此Firefox插件刪除緩存的重定向:https://addons.mozilla.org/en-us/firefox/addon/cacheviewer-continued/ – Steve

+0

+1對於實際解決問題:) –

107

在Firefox中,如果你有「web開發者」工具欄插件。您可以單擊禁用 - >禁用緩存 - >每次檢查新版本的頁面。然後重新加載URL並刷新緩存。所以你不需要清除你的完整緩存。

從cptstubing06的評論,下面可以幫助清除緩存:

  1. 類型Ctrl + L鍵把光標定位欄上。
  2. 類型about:config打開configuration settings
  3. 確認任何警告。
  4. 類型browser.cache其次輸入過濾設置。
  5. 雙擊browser.cache.check_doc_frequency
  6. 值改爲從31
  7. 點擊OK
  8. 重溫沉迷於緩存的301頁面。
  9. 完成後將頻率重置爲3。

Firefox現在應該重定向到新的301頁面,不再從緩存中獲取重定向的頁面。

+2

這是一個對我來說是一個很好的解決方案 - 我希望緩存301 99%的時間,但是一旦變成藍色,我可能需要更改重定向的位置,而不想清除我的整個緩存。只是爲了澄清,Firefox自帶的「Web Developer」菜單下的工具,這不是插件。該插件也被稱爲「Web Developer」,但在工具菜單中顯示爲「Web Developer Extension」,可在此處下載:https://addons.mozilla.org/en-us/firefox/addon/web-developer /。 – cptstubing06

+5

請注意 - 如果你想讓firefox更新你的重定向URL的緩存,你可以使用Web Developer Extension來控制firefox的變化行爲,以便永遠*檢查一個新版本,然後將其設置回你的正常設置。這是在Web Develoepr擴展 - >禁用 - >禁用緩存 - >檢查較新版本的頁面 - >每次檢查較新版本的頁面。 – cptstubing06

+1

無論選擇哪種方法,該過程都是將此設置更改爲始終檢查新版本,然後加載具有緩存重定向的URL。然後,它會觸發服務器並獲取該網址的任何新響應,並使用新響應更新其緩存。然後,您可以將緩存檢查頻率恢復爲原始值(默認爲「當頁面已過期」,但我將按照「每次會話一次」進行操作,以便現在無需我的介入即可處理此確切場景)。 – cptstubing06

9

我發現這是在Firefox 26的作品,有長達一個多月,並重新啓動一個過時的重定向緩存後的解決方案。

  1. 歷史上的菜單選擇顯示所有歷史記錄。
  2. 在搜索中,與緩存重定向問題域類型帶來了結果的列表。對他們中的一個
  3. 右擊並選擇「忘記這個網站」。

所有緩存的頁面,圖像和重定向爲只有該網站將被從緩存中刪除。這可以讓您清除您的開發網站的重定向,而無需清除其他緩存。

作爲一個方面說明,我認爲Firefox應該只緩存重定向最多幾天。緩存它們一個月以上可能會導致一個簡單的錯誤是一個大問題。

+2

這有效,但請注意,「忘記此網站」也會忘記URL歷史記錄(用於自動完成),甚至忘記整個域名的保存密碼。可能不是你想要的。 – tanius

5

一個快速解決方法是使用私人瀏覽器窗口。

+0

這是我的快速解決方案,有時只需在URL末尾添加問號即可。 – johnsnails

1

在Firefox版本38.0

Menu -> Edit -> Preferences -> Advanced -> Network -> Clear Now 

爲我工作。

5

最近版本的Firefox中內置的開發者工具爲此提供了一個解決方案。首先,關閉緩存,當開發窗格打開:

  • 在任何網頁上,打F12帶來了開發工具
  • 在最右邊,點擊齒輪圖標「工具箱選項」
  • Advanced Settings勾選Disable Cache (when toolbox is open)

現在要強制緩存頁面的刷新任何時間,負載/刷新與F12開發工具箱打開的網頁。 Firefox將繞過緩存並從服務器獲取最新數據。

我更喜歡這種方法,因爲它不會改變瀏覽器對於「正常」非調試瀏覽的行爲方式,而且您不會冒着遺忘將全局設置恢復到其原始值的風險。

驗證在Firefox 39

+1

它不幫助緩存重定向。 – SuperDuck