默认情况下,Sitecore似乎不会缓存页面。在web.config中,设置此
<setting name="DisableBrowserCaching" value="false"/>
并创建管道处理器
page.Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
page.Response.Cache.SetCacheability(HttpCacheability.Public);
但它不起作用,响应头保持no-cache
。顺便说一句,我在renderLayout
中添加了管道,有谁知道?谢谢!
答案 0 :(得分:3)
我尝试通过先将DisableBrowserCaching
设置为true
来重现此问题。这确实会产生一个无缓存标头。
然后我将其设置为false
并重新加载页面,并且no-cache标头消失了。没有必要做任何其他事情。
如果要设置到期标头,则应在IIS中的HTTP响应标头功能中执行此操作。
答案 1 :(得分:1)
Sitecore在内容呈现为HTML之前有7层缓存。您可以在呈现内容之前控制每次缓存。但默认情况下,no-cache确实是真的。
这是因为Sitecore中的页面是动态的。它们根据当前情况改变布局和内容。特别是如果您使用设备(http://briancaos.wordpress.com/2012/04/12/identifying-mobile-devices-in-sitecore/)并且在使用Sitecore DMS时,每个设备和用户的内容呈现方式不同。
如果您构建自己的浏览器缓存机制,请确保您只在包含静态内容的网页上执行此操作。