2010-12-01 77 views
9

Chrome會緩存DNS記錄,並且在主機文件成功連接到我的網站(禁止重新啓動)後往往會忽略對主機文件的更改。啓用DNS預取功能後,它更加明顯。防止Chrome緩存網站的DNS記錄

是否有任何頁面標題會指示Chrome不緩存網站的DNS?像Cache-Control或類似307 Temporary Redirect的響應狀態?

回答

4

這可能是Google Chrome中的一個真正的bug。我創建了http://crbug.com/65570來跟蹤它,但請添加您可以想到的任何其他信息,以確保我們能夠正確理解您的問題。

這聽起來似乎除了關閉Chrome之外唯一的解決方法是拔掉網線然後重新插入。當Chrome看到這樣的事件時,它會丟棄它的套接字和dns緩存。當我們看到/ etc/hosts發生改變時,錯誤的正確解決方案可能也會這樣做。

如果您想知道錯誤何時解決,請轉至http://crbug.com/65570並單擊錯誤號旁邊的星號。而且,正如我所說的,請將任何其他信息添加到該錯誤中。

+3

感謝。我在某處讀到Chromium項目有一個強制DNS刷新的「Shift + F5」功能,但這仍然需要進入Chrome本身。 – 2010-12-06 10:37:13

0

我沒有什麼真正需要添加的東西,除非因爲修改/ etc/hosts來達到我的開發環境,所以這真的會讓我失去Web開發。

+0

是的,我經常將local.devdomain.com或整個devdomain.com映射到127.0.0.1,以測試特定於域的項目,並且Chrome並不總是接受這一點。 – 2011-01-11 17:14:06

6

我不確定這是否正是您正在尋找的內容,但是這也讓我很難切換開發環境,而且我偶然發現了這個內部的Chrome頁面,您可以通過單擊按鈕清除緩存: chrome:// net-internals /#dns

然後點擊清除主機緩存。這不是自動的,但嘿它是一些東西。

還要記住操作系統可能會做自己的緩存級別。 Linux不緩存DNS條目我認爲(至少對我來說清除緩存是足夠好的),但對於Windows或Mac,您可能還需要刷新操作系統級別的DNS緩存。從Windows的命令行運行ipconfig /flushdns或從mac命令行運行sudo dscacheutil -flushcache

+0

感謝您指向此頁面。實際上,我將主機名設置爲指向IPv6,因爲鍵入127.0.0.1更容易,但我沒有意識到chrome沒有啓用IPv6(本頁向我顯示)。在清除主機緩存並打開IPv6之後,立即工作得很好。 – 2013-05-28 22:50:13

+0

奇怪的是,這不適合我。如果我更改我的主機文件並單擊要清除的按鈕,它仍會使用高速緩存的主機,即使表中沒有高速緩存的主機已在列表中列出。 – user37078 2014-01-29 21:29:32

1

在我的情況下,我經常從我的開發Web服務器和生產服務器使用自定義主機文件,以清除chrome中的所有dns緩存信息,我使用此過程,並立即在同一個選項卡中工作需要加載更新網站地址:鉻

  1. 複製並粘貼此鏈接:鉻://網內部/#DNS
  2. 點擊「清空主機緩存」按鈕並點擊點擊窗口右上角的小黑箭頭,點擊「清除緩存」和「Flusk Sockets」,新的地址將被加載。

Chrome Dns panel