2010-06-07 100 views
0

我看到一些使用瀏覽器緩存的靜態頁面的問題,這是不需要的。爲了防止緩存,我設置asp.net中的緩存問題

<clientCache cacheControlMode="DisableCache" /> 

在相關<location>標籤在web.config中

如果我打開Firebug的頁面(在選項卡),我看到的響應頭有Cache-Control: no-cache這是正確的,但響應的狀態是304未修改!這不是矛盾嗎?我怎樣才能停止緩存(即總是發送200內容)?

+1

一個更好的問題可能是,你可以,但是,明確的響應設置頁眉...「爲什麼IIS不認爲它有更新的文件?」如果你可以解決這個問題,那麼你不需要關閉緩存就可以實現性能。 – David 2010-06-07 19:26:53

回答

3

按照RFC(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.1,部分14.9.1)緩存控制:無緩存告訴瀏覽器不使用緩存的內容不先與服務器重新驗證。這就是你看到304的原因。我認爲你正在尋找Cache-Control: no-store

我不確定您是否可以通過配置文件發送無存儲。

Response.Cache.SetNoStore(); 

編輯:(由OP)

我一直在尋找的是:

<clientCache cacheControlCustom="no-store" /> 
+0

但我想在web.config中完成此操作,而不是在代碼中。有沒有比更好的選擇? – JoelFan 2010-06-07 19:18:30

+0

試試這個(未經測試!): 2010-06-07 19:29:01

+0

本頁http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache沒有列出「no-store」爲一個可能的設置 – JoelFan 2010-06-07 19:42:08