解决将AEM作为EDS内容源时出现的通用编辑器访问和配置问题

当Edge Delivery Services (EDS)使用AEM作为其内容源时,作者不会在通用编辑器中看到预期的元数据字段、块配置值、模板变体或JSON数据。 原因几乎总是体系结构或配置不匹配:EDS项目仅支持一个主要内容源,BYOM (自带模型)模型必须向通用编辑器显式公开元数据,动态字段填充需要自定义通用编辑器扩展,并且必须通过EDS存储库、结构化内容或DAM映射刻意公开JSON或配置数据。 确认创作模式、强制实施单源规则并公开所需的元数据和数据可恢复缺少的编辑器字段。

描述 description

问题:当AEM是EDS内容源时,通用编辑器不显示元数据、块字段或JSON数据

说明

在使用Edge Delivery Services (EDS)和通用编辑器(UE)时,作者不会在编辑器中看到预期的元数据字段、块配置值、模板变体或JSON数据。 页面无法在UE中正确加载,或者作者无法配置页面级元数据、动态字段或块选项。 在其他情况下,客户会尝试使用不受支持的架构模式,例如,在单个EDS项目中混合使用通用编辑器和基于文档的创作,或者在同一fstab.yaml中配置多个内容源。 这些错误配置会导致呈现不一致、缺少元数据、无法使用某些创作界面或块无法继续使用AEM中的所需输入。

环境:

  • Adobe Experience Manager as a Cloud Service (AEMaaCS)
  • AEM Managed Services
  • AEM as a Cloud Service — 站点
  • Edge Delivery Services (EDS)
  • 通用编辑器

问题/症状:

  • 通用编辑器已加载,但元数据字段或块配置字段未显示,未显示任何错误。
  • 由于BYOM中缺少页面级或块级元数据,块无法呈现。
  • 作者希望在一个EDS项目中同时进行基于文档的创作和UE创作,但只能识别一个源。
  • 自定义JSON或配置数据在通用编辑器中不可用,即使文件存在于DAM或GitHub中也是如此。
  • UE中永远不会填充块的动态对话框/下拉选项。

根本原因:

EDS和通用编辑器遵循严格的体系结构模型。 单个EDS项目只有一个主内容源,BYOM模型必须向通用编辑器显式公开元数据,动态字段填充需要自定义通用编辑器扩展,并且必须通过EDS存储库、结构化内容或DAM映射有意公开JSON或其他配置数据。 这些区域中的任何一个配置错误都会导致元数据丢失、配置数据无法访问或不支持的混合设置。

如何确认

  1. 确认项目使用哪种创作模式(通用编辑器、基于文档或同时使用两者)来建立是否已启用通用编辑器并且该编辑器是否应该对有关页面有效。 如果不清楚,请捕获在UE中打开的确切URL。
  2. 查看fstab.yaml或项目要求以确认EDS项目仅使用一个主内容源,以及安装程序是否尝试将AEM和基于文档的源混合到一个项目中。
  3. 确认UE创作所需的页面级元数据是否通过BYOM公开,包括基本page-metadata模型和任何特定于模板的模型。 如果需要一个模板,请确认页面元数据中存储了template = page-type

解决方法 resolution

  1. 强制实施单内容源规则。 EDS支持每个项目使用一个主要内容源。 如果项目将各种源(例如AEM和基于文档的创作)混合在一起,请创建两个单独的EDS站点,并使用CDN路由在这些站点之间定向流量。 不支持在单个存储库中进行本机混合UE和基于文档的创作。

  2. 通过BYOM公开UE创作所需的元数据。 确认基础page-metadata模型存在,并根据需要定义特定于模板的元数据模型。 确认AEM页面属性公开块期望的template元数据值。

  3. 根据自定义JSON数据是可供作者编辑还是静态数据来公开自定义数据:

    • 如果数据可供作者编辑,请使用EDS结构化内容并定义架构。
    • 如果数据是静态的,请将JSON存储在EDS存储库中,或存储在具有显式映射的AEM DAM中。

确认生成的端点URL可访问,以便UE和块可以提取数据。
​4. 正确处理动态下拉列表或字段填充。 EDS不支持Granite UI数据源,因此不能通过此方式加载动态下拉选项。 请改用具有自定义字段和客户端API调用的通用编辑器可扩展性,这要求实施UE扩展。
​5. 验证需要多个页面模板的站点的模板和阻止行为。 将相关的AEM页面标记为用作模板,并设置用于样式的模板元数据(CSS类)。 从模板创建一个页面,并确认该页面包含正确的初始内容和元数据。

验证

  1. 在通用编辑器中打开该页面,并确认所有预期的元数据字段和块配置字段均可见。
  2. .page域上加载页面,并确认将动态元数据或JSON数据渲染到页头。
  3. 确认对JSON端点的fetch()调用返回预期的内容。
  4. 重新发布后,使用动态配置渲染正确确认块。

相关阅读

recommendation-more-help
experience-cloud-kcs-help-kbarticles