无论我做什么,我似乎无法在浏览器本地缓存我的aspx页面。登录后对页面的第一个请求进入服务器并从那里检索它。第二个请求以后,页面从本地缓存中获取。但是,只要我注销并重新登录,就会再次从服务器获取同一页面,而不是从本地缓存中获取。
我的网页的网址如下:
http://mywebsite.net/page1.aspx?v=2015_3.0&ln=en-EN&sid=612e0d3f-f29d-4b98-b4f7-6788e5a35a03
页面的响应标题如下所示:
Cache-Control:private, max-age=31536000
Content-Encoding:gzip
Content-Length:18355
Content-Type:text/html; charset=utf-8
Date:Thu, 03 Sep 2015 15:34:59 GMT
Expires:Fri, 02 Sep 2016 15:34:56 GMT
Last-Modified:Thu, 03 Sep 2015 15:34:56 GMT
Server:Microsoft-IIS/8.5
Vary:Accept-Encoding
X-AspNet-Version:4.0.30319
X-Powered-By:ASP.NET
在我的aspx代码背后,这就是我设置的
resp.Cache.SetCacheability(HttpCacheability.ServerAndPrivate)
resp.Cache.SetOmitVaryStar(True)
resp.Cache.SetExpires(DateTime.UtcNow.AddYears(1))
resp.Cache.SetMaxAge(New TimeSpan(365, 0, 0, 0))
resp.Cache.SetLastModified(DateTime.UtcNow)
resp.Cache.SetValidUntilExpires(True)
resp.Cache.VaryByParams.Item("v") = True
resp.Cache.VaryByParams.Item("ln") = True
resp.Cache.VaryByParams.Item("sid") = False
有人可以建议为什么浏览器不会从本地缓存中获取页面?
答案 0 :(得分:0)
由于查询字符串不断变化,因此浏览器忽略了缓存页面。