我看到一些使用瀏覽器緩存的靜態頁面的問題,這是不需要的。爲了防止緩存,我設置asp.net中的緩存問題
<clientCache cacheControlMode="DisableCache" />
在相關<location>
標籤在web.config中
如果我打開Firebug的頁面(在淨選項卡),我看到的響應頭有Cache-Control: no-cache
這是正確的,但響應的狀態是304未修改!這不是矛盾嗎?我怎樣才能停止緩存(即總是發送200內容)?
我看到一些使用瀏覽器緩存的靜態頁面的問題,這是不需要的。爲了防止緩存,我設置asp.net中的緩存問題
<clientCache cacheControlMode="DisableCache" />
在相關<location>
標籤在web.config中
如果我打開Firebug的頁面(在淨選項卡),我看到的響應頭有Cache-Control: no-cache
這是正確的,但響應的狀態是304未修改!這不是矛盾嗎?我怎樣才能停止緩存(即總是發送200內容)?
按照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" />
一個更好的問題可能是,你可以,但是,明確的響應設置頁眉...「爲什麼IIS不認爲它有更新的文件?」如果你可以解決這個問題,那麼你不需要關閉緩存就可以實現性能。 – David 2010-06-07 19:26:53