【问题标题】:In AEM 6.2, how do you create a static page template on a site that already has editable page templates?在 AEM 6.2 中,如何在已具有可编辑页面模板的站点上创建静态页面模板?
【发布时间】:2016-08-01 12:19:27
【问题描述】:

我在我们的网站上创建一个已经有可编辑页面的静态页面模板时遇到了问题。我不确定我是否只是创建了错误的模板、缺少必需的调用,或者是否存在配置模板导致 AEM 不检查应用程序中的模板。

我在应用程序中定义了我的静态模板,this documentation 说要定义一个静态模板

apps/<site-name>/templates/<template-name>

我的可编辑模板在

content/conf/<site-name>/settings/wcm/templates

我尝试将我的静态模板添加到 conf 模板目录中,然后在创建新页面时显示为一个选项,但在页面创建期间的属性选项卡为空,并且创建按钮显示为灰色。

这是我的应用程序静态模板 .content.xml

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
          jcr:description="Bio Page"
          jcr:mixinTypes="[mix:lockable]"
          jcr:primaryType="cq:Template"
          jcr:title="Bio Page"
          allowedPaths="[/content(/.*)?]"
          ranking="{Long}3">
    <jcr:content
            cq:designPath="/etc/designs/<site>"
            jcr:primaryType="cq:PageContent"
            sling:resourceType="<site>/components/structure/static-page/bio"
            cq:template="/apps/<site>/templates/bio-page"> 
    </jcr:content>
</jcr:root>

【问题讨论】:

  • 不清楚,你要修复什么。您希望您的静态模板在 /apps 下工作(6.2 之前的模板过去的工作方式)还是希望它成为使用模板编辑器的可配置模板?

标签: aem sling


【解决方案1】:
  • 当在/apps/&lt;site&gt;/templates 下定义时,您的静态模板不起作用,在您的上述 XML 模板定义中,jcr:content 不应具有属性 cq:template。 cq:template 属性存在于使用模板创建的页面中。

您在哪里尝试使用您的模板创建页面,您的模板将允许的路径定义为 /content 以及它下面的任何层次结构,但这可能受到其他模板上的属性 allowedChildren 和 allowedParents 的限制/限制在你的层次结构中。尝试直接在/content 下创建一个页面,没有其他限制。那你可以创建页面了吗?

  • 将模板移动到/conf/&lt;site-name&gt;/settings/wcm/templates 下需要您在定义sling:resourceType="&lt;site&gt;/components/structure/static-page/bio" 的位置关联结构,这将负责您在创建页面向导中看到的已定义属性。如果重复使用/复制将模板从/apps 粘贴到/conf,那么您可能会丢失此结构,添加将解决问题

【讨论】:

    【解决方案2】:

    确保您的 sling:resourceType 路径 100% 正确。 jcr:content 上 sling:resourceType 属性的大小写区分大小写,因此请确保您已验证路径中的大小写匹配。

    我也遇到过同样的问题 (AEM 6.2)。

    在

    /apps/<site>/templates/<templatename>/jcr:content
    

    我在sling:resourceType 属性中有错字。

    我输入了不正确的名称(mySite vs mysite)。

    更正路径解决了问题。

    【讨论】:

      【解决方案3】:

      默认情况下,如果您通过 UI 创建可编辑模板,而不是手动编写代码,然后继续使用此模板创建站点的根页面,则可编辑模板以及因此站点的根页面将具有非常限制性cq:allowedTemplates 值,例如/conf/mysite/settings/wcm/templates/.*。要允许静态模板与同一站点上的可编辑模板共存,您需要将/apps/mysite/components/templates/.* 添加到可编辑模板的cq:allowedTemplates。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-05-28
        • 1970-01-01
        • 1970-01-01
        • 2015-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多