我在我们的网站上创建了一个已经有可编辑页面的静态页面模板时遇到了问题。我不确定我是否只是创建了错误的模板,错过了所需的调用,或者如果存在配置模板,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>
答案 0 :(得分:0)
/apps/<site>/templates
下定义时无效,在您的上述XML模板定义中,jcr:content
不应具有属性cq:template
。使用模板创建的页面中存在属性cq:template
。您尝试使用模板创建页面的位置,模板将您允许的路径定义为/ content以及其下方的任何层次结构,但这可能受属性allowedChildren
和{{1}限制/限制在层次结构中的其他模板上。尝试直接在allowedParents
下创建一个页面,其中不适用其他限制。你能创建页面吗?
/content
下移动模板需要您将结构与定义/conf/<site-name>/settings/wcm/templates
的结构相关联,这将负责您在创建页面向导中看到的已定义属性。如果重复使用/复制粘贴模板从sling:resourceType="<site>/components/structure/static-page/bio"
到/apps
,那么您可能会错过此结构,添加哪个将解决问题答案 1 :(得分:0)
确保您的sling:resourceType路径100%正确。 jcr:content上sling:resourceType
属性的大小写区分大小写,因此请确保您已在路径中验证了大小写匹配。
我见过同样的问题(AEM 6.2)。
在
/apps/<site>/templates/<templatename>/jcr:content
我在sling:resourceType
属性中输了一个错字。
我输入了名称不正确的案例(mySite
vs mysite
)。
纠正路径解决了问题。
答案 2 :(得分:0)
默认情况下,如果您通过UI创建了可编辑模板,而不是手动编码,然后使用此模板继续创建网站的根页面,则可编辑模板以及网站的根页将非常限制性cq:allowedTemplates
值,例如/conf/mysite/settings/wcm/templates/.*
。要允许静态模板与同一网站上的可修改模板共存,您需要将/apps/mysite/components/templates/.*
添加到可编辑模板的cq:allowedTemplates
。