我使用以下代码在* .png请求上写缓存标头: response.Buffer = false; response.BufferOutput = false;
// Emit content type and encoding based on the file extension and
// whether the response is compressed
response.ContentType = MimeMapping.GetMimeMapping(physicalFilePath);
if (mode != ResponseCompressionType.None)
response.AppendHeader("Content-Encoding", mode.ToString().ToLower());
response.AppendHeader("Content-Length", count.ToString());
// Emit proper cache headers that will cache the response in browser's
// cache for the default cache duration
response.Cache.SetCacheability(HttpCacheability.Public);
response.Cache.AppendCacheExtension("must-revalidate, proxy-revalidate");
response.Cache.SetMaxAge(DEFAULT_CACHE_DURATION);
response.Cache.SetExpires(DateTime.Now.Add(DEFAULT_CACHE_DURATION));
response.Cache.SetLastModified(lastModified);
但每次刷新包含PNG URL的页面时,它都会再次发布到Web服务器。似乎缓存标头不起作用,更糟糕的是,它使浏览器缓存也不起作用。
我正在使用asp.net mvc。 有人能指出我正确的方向吗?谢谢!
答案 0 :(得分:0)
任何浏览器或服务器都会POST
永远不会缓存。如果浏览器发出POST
请求,则服务器将执行它。您无法缓存结果。不POST
的唯一方法是不发出POST
。
答案 1 :(得分:0)