2012-02-22 55 views
1

潛在的問題在調試過程中,我注意到這一點,並希望確保它在生產中不會發生:51degrees和IIS緩存,MVC3,具有輸出

我實現了我的網站的移動版本,使用51degrees庫與我的MVC3基於應用程序。我沒有使用自定義的網址或子域名,因此每個請求都會在返回正常或移動版本的html之前進行分析,以查看它是否來自移動瀏覽器。

在調試過程中,我注意到IIS有時會緩存頁面的輸出。我只在主頁上看到過這種情況。無論什麼時候它被緩存,相同的內容被提供給移動和桌面瀏覽器,所以顯然這是錯誤的。

我知道阻止頁面緩存瀏覽器端的方法的數量,但認爲我會檢查是否有一個特定的推薦方式來處理這個問題?

回答

3

我是否認爲您對移動和非移動網頁都使用相同的URL是正確的?如果是這樣,那麼你將需要使用以下設置。

Response.Cache.VaryByHeaders.UserAgent = true;

這將確保正確配置的緩存將使用useragent字符串存儲不同版本的頁面。

+0

只有當您不讓用戶選擇從站點的桌面版本切換到移動站點時才能使用,反之亦然。如果他切換,他仍然會看到緩存版本。考慮到緩存方差應考慮.aspxbrowseroverride中的cookie值。 – 2012-08-21 14:10:02

+0

是否可以在web.config中定義VaryByHeaders? – 2016-10-30 11:08:50