asp.net mvc 2.0-asp.net mvc4.0 OutputCache设置客户端缓存Bug
广告:
asp.net mvc 2.0-asp.net mvc4.0 OutputCache设置客户端缓存Bug
知识点:
静态文件如index.html一般默认客户端是有缓存的,但是要更新index.html只有加index.html?t=25364这样的临时参数了。
其实也可以在程序中这样设置:Response.Cache.SetNoStore();不用再加临时参数 前台代码生成这样的响应头内容: Cahe-Control:private,no-store 许多浏览器都能识别它
另外一个方法就是设置一个已过期的过期时间。
问题:在 ASP.NET MVC 3 中如果使用了 OutputCache设置缓存后,一定要在 Action 中添加下面的代码,不然只有服务器端缓存,没有客户端缓存,切记!
Response.Cache.SetOmitVaryStar(true);
加了以上代码后,客户端则有如下标识:
Expires (过期时间)
Expires Sun, 01 Dec 2013 13:33:20 GMT 对应北京时间: Sun, 01 Dec 2013 21:33:20
Last-Modified (最后修改时间,缓存开始生效时间)
Last-Modified Sun, 01 Dec 2013 11:28:20 GMT 对应北京时间: Sun, 01 Dec 2013 19:28:20
以上表示设置浏览器客户端缓存为:7500秒
[OutputCache(Duration =7500, VaryByParam = "none", VaryByCustom = "Crawler")]
public ActionResult Index()
{
Response.Cache.SetOmitVaryStar(true); ////
}
广告: