如何使响应式网站中的 html sitecore 缓存失效?
How to invalidate html cache of sitecore in responsive website?
我们有一个基于 sitecore 的响应式网站,它在某些页面中针对移动设备提供了与桌面不同的内容。我们通过使用 Http Request 用户代理来识别设备类型,并基于它有不同的业务逻辑。
当我们为这些呈现启用 sitecore HTML 缓存时,与用户代理逻辑一起使用的逻辑将不起作用。因为 sitecore 缓存不会因设备而异而失效。因此,对于不同的设备,sitecore 也会从渲染的相同 HTML 缓存中给出响应。
我们应该如何处理这种情况?
您可以使用用户代理的业务逻辑创建自己的自定义“变化方式”。或者使用 Vary by Device 但您需要按照 Sitecore 支持的方式使用设备,在 /sitecore/layout/Devices
下面创建您的设备并使用它们。
为 mvc.renderRendering pipeline
创建一个 RenderRenderingProcessor
(Sitecore.Mvc.Pipelines.Response.RenderRendering
)。并将复选框添加到模板 /sitecore/templates/System/Layout/Sections/Caching/
有关代码示例,请参见
Custom Cache Criteria with MVC in the Sitecore from John West
有关缓存的更多信息,请参阅 Sitecore Caching and Sitecore Custom Cache
我们有一个基于 sitecore 的响应式网站,它在某些页面中针对移动设备提供了与桌面不同的内容。我们通过使用 Http Request 用户代理来识别设备类型,并基于它有不同的业务逻辑。
当我们为这些呈现启用 sitecore HTML 缓存时,与用户代理逻辑一起使用的逻辑将不起作用。因为 sitecore 缓存不会因设备而异而失效。因此,对于不同的设备,sitecore 也会从渲染的相同 HTML 缓存中给出响应。
我们应该如何处理这种情况?
您可以使用用户代理的业务逻辑创建自己的自定义“变化方式”。或者使用 Vary by Device 但您需要按照 Sitecore 支持的方式使用设备,在 /sitecore/layout/Devices
下面创建您的设备并使用它们。
为 mvc.renderRendering pipeline
创建一个 RenderRenderingProcessor
(Sitecore.Mvc.Pipelines.Response.RenderRendering
)。并将复选框添加到模板 /sitecore/templates/System/Layout/Sections/Caching/
有关代码示例,请参见 Custom Cache Criteria with MVC in the Sitecore from John West
有关缓存的更多信息,请参阅 Sitecore Caching and Sitecore Custom Cache