2013-07-05 70 views
0

我有一個asp.net網站,我希望客戶端瀏覽器緩存aspx頁面的HTML輸出一旦得到它們。 從閱讀我周圍發現了IIS7不支持此外的開箱,所以我下面的代碼添加到OnLoad事件我的主母版頁:爲aspx頁面設置緩存控制

protected override void OnLoad(EventArgs e) { 
    DateTime dt = DateTime.Now.AddDays(10); 
    Response.Cache.SetCacheability(HttpCacheability.Public); 
    Response.Cache.SetExpires(dt); 
    Response.Cache.SetMaxAge(new TimeSpan(dt.Ticks - DateTime.Now.Ticks)); 

    base.OnLoad(e); 
} 

有了這個,我仍然得到下面的響應頭:

HTTP/1.1 200 OK 
Cache-Control: no-cache 
Pragma: no-cache 
Content-Type: text/html; charset=utf-8 
Content-Encoding: gzip 
Expires: -1 
Vary: Accept-Encoding 
Date: Fri, 05 Jul 2013 14:25:03 GMT 
Content-Length: 10201 

也許我做了一件很久以前覆蓋,但我不能,我的生活記得,如果和我所做的。在Google上搜索時沒有找到任何有關此信息的信息,這讓我認爲對於aspx頁面,cache-control並不是一個好主意......但我需要這樣做才能讓雲端(CDN)允許整個站點交付。

回答

0

在IIS管道中的某處(我還沒有找到位置),沒有設置緩存頭。在我的母版頁中,在設置我想要使用的緩存標題之前,我添加了下面的代碼Response.ClearHeaders();對於每個人來說,這可能不是一個好的解決方案,因爲你可能在響應中有一些你需要的頭文件,但在我的情況下,訣竅。