模板

上次更新: 2024-01-08

模板在AEM中的各个时间点使用:

以下模板将详细介绍:

模板 — 页面

AEM现在提供了两种用于创建页面的基本模板类型:

注意

将模板用于 创建页面,则没有可见差异(对于页面作者),也未指示所使用的模板类型。

可编辑模板

可编辑模板现在被视为使用AEM进行开发的最佳实践。

可编辑模板的优势:

  • 可以是 已创建已编辑 你的作者写的。

  • 引入后,您可以为使用该模板创建的任何页面定义以下内容:

    • 结构
    • 初始内容
    • 内容策略
  • 创建新页面后,页面和模板之间会保持动态连接。 此连接意味着对模板结构的更改会反映在使用该模板创建的任何页面上;对初始内容的更改不会反映在页面上。

  • 使用内容策略(从模板编辑器编辑)来保留设计属性(不使用页面编辑器中的设计模式)。

  • 存储在 /conf

  • 请参阅 可编辑的模板 以了解详细信息。

静态模板

静态模板:

  • 必须由开发人员定义和配置。
  • AEM的原始模板系统已经有许多版本可用。
  • 静态模板是指与要创建页面具有相同结构,但没有任何实际内容的节点的层次结构。
  • 创建页面时复制了此变量,此后不存在动态连接。
  • 用途 设计模式 以保留设计属性。
  • 存储在 /apps
  • 请参阅 静态模板 以了解详细信息。
注意

从AEM 6.5开始,使用静态模板不被视为最佳实践。 请改用可编辑的模板。

AEM现代化 工具可以帮助您从静态模板迁移到可编辑模板。

模板可用性

注意

AEM提供了多个属性来控制下允许的模板 站点. 但是,将它们组合在一起可能会导致难以跟踪和管理的复杂规则。

因此,Adobe建议您从定义以下内容开始:

  • cq:allowedTemplates 属性

  • 仅在站点根目录上

有关示例,请参阅We.Retail: /content/we-retail/jcr:content

属性 allowedPathsallowedParents、和 allowedChildren 还可以放置在模板上以定义更复杂的规则。 但是,如果可能,它是 很多 更简单以进一步定义 cq:allowedTemplates 属性。

另一个优势是 cq:allowedTemplates 作者可以在以下位置更新属性 高级 选项卡 页面属性. 无法使用(标准)UI更新其他模板属性,因此需要开发人员维护规则和每次更改的代码部署。

在站点管理界面中创建页面时,可用模板的列表取决于新页面的位置以及在每个模板中指定的版面限制。

以下属性确定模板是否 T 用于作为页面的子项放置的新页面 P. 以下每个属性都是一个多值字符串,其中包含零个或多个用于与路径匹配的正则表达式:

  • cq:allowedTemplates 的属性 jcr:content 子节点 P 或祖先 P.

  • allowedPaths 属性 T.

  • allowedParents 属性 T.

  • allowedChildren 模板的属性 P.

评估工作如下:

  • 第一个非空 cq:allowedTemplates 在页面层次结构中以开始升序时发现属性 P 的路径匹配 T. 如果没有任何值匹配, T 被拒绝。

  • 如果 T 具有非空 allowedPaths 属性,但没有值匹配路径 PT 被拒绝。

  • 如果以上属性为空或不存在, T 被拒绝,除非它属于与相同的应用程序 P. T 属于与相同的应用程序 P 当且仅当第二级路径的名称 T 与的路径的第二级名称相同 P. 例如,模板 /apps/geometrixx/templates/foo 属于与页面相同的应用程序 /content/geometrixx.

  • 如果 T 具有非空 allowedParents 属性,但没有值匹配路径 PT 被拒绝。

  • 如果模板 P 具有非空 allowedChildren 属性,但没有值匹配路径 TT 被拒绝。

  • 在所有其他情况下, T 允许。

下图描述了模板评估流程:

chlimage_1-176

限制子页面中使用的模板

要限制哪些模板可用于在给定页面下创建子页面,请使用 cq:allowedTemplates 属性 jcr:content 页面的节点,用于指定允许作为子页面的模板列表。 列表中的每个值都必须是允许的子页面模板的绝对路径,例如, /apps/geometrixx/templates/contentpage.

您可以使用 cq:allowedTemplates 模板的属性 jcr:content 节点,用于将此配置应用于使用此模板的所有新创建的页面。

例如,如果要添加更多关于模板层次结构的约束,可以使用 allowedParents/allowedChildren 属性。 然后,您可以明确指定从模板T创建的页面必须是从模板T创建的页面的父项/子项。

模板 — 内容片段

请参阅 内容片段模板.

在此页面上