【发布时间】:2013-07-03 16:46:57
【问题描述】:
我有一个 asp.net 网站,我希望客户端浏览器在获取 aspx 页面的 HTML 输出后对其进行缓存。
通过阅读,我发现 IIS7 不支持这种开箱即用的功能,因此我将以下代码添加到我的主页的 OnLoad 事件中:
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 时没有找到任何相关信息让我觉得可能 cache-control 用于 aspx 页面不是一个好主意......但我需要这个以便云端(CDN)允许整个网站交付。
【问题讨论】:
标签: asp.net iis-7 http-headers