发布具有深度嵌套内容片段的页面
本文介绍了如何解决引用深度嵌套内容片段的AEM Sites页面在递归引用搜索过程中因超时而无法发布的情况。
描述 description
环境
Adobe Experience Manager as a Cloud Service(所有版本)
问题/症状
在发布引用具有深层或宽嵌套引用的内容片段的AEM Sites页面时,该页面不会出现在管理发布有效负载中,并且不会发布。 当内容片段引用许多其他内容片段,从而导致数千个嵌套引用和多个级别嵌套时,会发生这种情况。 引用检查过程会变得缓慢并可能会超时,导致页面无法包含在发布工作流中。 UI中未显示任何显式错误消息,但发布有效负载中缺少预期的页面。
原因
对深度嵌套的内容片段的递归引用搜索可能会导致性能下降和超时,从而阻止页面包含在发布有效负载中。 禁用递归搜索可提高性能,但需要手动管理嵌套片段发布。
解决方法 resolution
要修复引用深度嵌套内容片段的AEM Sites页面无法发布的问题,请执行以下步骤:
-
通过更新
com.day.cq.wcm.core.impl.reference.ActivationReferenceSearchServiceImpl的配置并设置禁用递归内容片段引用搜索的选项来禁用递归内容片段引用搜索。 -
通过Cloud Manager更新配置:
- 在您的Cloud Manager项目中,添加或更新
com.day.cq.wcm.core.impl.reference.ActivationReferenceSearchServiceImpl的OSGi配置文件。 - 在配置中设置
"enable.recursive.cf.reference.search": false。 - 通过Cloud Manager管道提交并部署配置。
- 在您的Cloud Manager项目中,添加或更新
-
或者,在本地或非生产环境中通过OSGi控制台更新配置:
- 登录到AEM创作实例。
- 导航到
/system/console/configMgr。 - 搜索
ActivationReferenceSearchServiceImpl。 - 编辑配置并将递归内容片段引用搜索设置为
false。 - 保存配置。
-
禁用递归搜索后,尝试使用管理发布再次发布受影响的页面。 该页面现在应包含在发布有效负载中并成功发布。
-
根据需要手动发布深度嵌套的内容片段。 禁用递归搜索时,只自动解析一级引用。 确保已通过CF/Assets控制台手动发布所需的所有嵌套内容片段,或在发布流程中包含相关CF文件夹来发布这些片段。
recommendation-more-help
experience-cloud-kcs-help-kbarticles