在AEM中为特定组件实例禁用Dispatcher缓存
在Adobe Experience Manager (AEM)中,当一个页面上的多个组件共享同一resourceType时,为特定组件实例禁用Dispatcher缓存会变得困难。 例如,如果页面A包含组件A和组件B,并且两者使用相同的resourceType(例如,C),则使用Sling动态包含(SDI)从缓存中排除C将影响这两个组件。 但是,该要求是在缓存组件A的同时排除组件B。要实现此目的,请为组件B创建一个代理组件,并将SDI配置为仅定向代理。
描述 description
环境
- 产品: Adobe Experience Manager (AEM)
- 实例: 任何使用SDI和共享
resourceType组件的环境
问题/症状
- 一个页面上的多个组件共享同一
resourceType。 - 只需从Dispatcher缓存中排除一个组件实例。
- SDI排除所有具有相同
resourceType的组件。 - 使用默认配置无法实现选择性缓存控制。
解决方法 resolution
要解决此问题,请执行以下步骤:
- 为要从缓存中排除的组件(例如代理组件B)创建代理组件(例如代理组件D)。
- 将代理配置为使用与原始组件(代理组件B)相同的功能。
- 更新您的Sling动态包含(SDI)配置以引用代理组件D而不是共享
resourceType。 - 调整Dispatcher规则以从缓存中排除代理组件D,同时允许同一
resourceType的其他实例保持缓存状态。
相关阅读
在AEM Foundation教程中设置Sling Dynamic Include。
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f