3

默认情况下,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,有人知道吗?谢谢!

4

2 回答 2

3

我试图通过首先将DisableBrowserCaching设置设置为来重现这一点true。这确实会产生一个无缓存标头。

然后我将它设置为false并重新加载页面并且无缓存标题消失了。不需要其他任何东西。

如果要设置过期标头,则应在 IIS 中的 HTTP 响应标头功能中执行此操作。

于 2012-04-16T11:18:58.057 回答
1

在内容呈现为 HTML 之前,Sitecore 有 7 层缓存。您可以在呈现内容之前控制每个缓存。但是默认情况下 no-cache 是真的。

这是因为 Sitecore 中的页面是动态的。他们根据当前情况更改布局和内容。特别是如果您使用设备 ( http://briancaos.wordpress.com/2012/04/12/identifying-mobile-devices-in-sitecore/ ) 并且在使用 Sitecore DMS 时,每个设备和用户的内容呈现方式不同。

如果您构建自己的浏览器缓存机制,请确保您只在具有静态内容的页面上执行此操作。

于 2012-04-17T11:07:07.717 回答