【问题标题】:cq include not working, 404 errorcq包括不工作,404错误
【发布时间】:2016-12-08 22:49:56
【问题描述】:

我尝试使用以下代码将一个组件包含在另一个组件中

<%
String fakePath = resource.getPath() + "/nav-tabs";
%>
<cq:include path="<%=fakePath%>" resourceType="ven/components/navMenu"/>

当我打开站点页面并尝试编辑组件以创作数据时,浏览器控制台中出现以下错误并且无法看到组件对话框。

widgets.js:3318 获取 http://localhost:4502/content/ven/global/en/testPage/jcr:content/nav-tabs.infinity.json?_dc=1481236797569 404(未找到)

我也没有看到在内容树下创建的任何资源。

有人能解释一下吗?

谢谢, 斯里

【问题讨论】:

    标签: aem


    【解决方案1】:

    看起来您将此组件直接放在页面上,因为在您的情况下,resource.getPath() 返回 http://localhost:4502/content/ven/global/en/testPage/jcr:content。您可以在创建页面时使用页面模板来创建初始内容。

    对于组件,您可以使用 cq:template 资源:

    只需将 cq:template 资源放在您的组件下方。一旦你添加了一个新组件,它应该将它的内容复制到你的资源中(类似于页面模板)

    在你的情况下:_cq_template.xml:

    <?xml version="1.0" encoding="UTF-8"?>
    <jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
          jcr:primaryType="nt:unstructured">
        <nav-tabs
            jcr:primaryType="nt:unstructured"
            sling:resourceType="ven/components/navMenu"/>
    </jcr:root>
    

    【讨论】:

    • 感谢您的帮助。如果我将组件直接放在页面上,sling 不会创建合成资源吗?
    • 我认为 sling 仍然会尝试使用给定的 resourceType 渲染不存在的资源,问题出在 ext.js 对话框实现中。它期望资源存在以呈现对话框。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 2018-06-18
    • 2017-10-22
    • 2014-07-20
    • 2013-03-22
    • 1970-01-01
    相关资源
    最近更新 更多