Adobe AEM |未在内容文件夹中创建组件

Adobe AEM | Component is not being created in content folder

我正在尝试在我创建的新组件中添加徽标组件。该项目是使用 eclipse aem 插件创建的。

My component, that inherits from a native component.

My content component

<!DOCTYPE html>
<html>
<head>
    <sly data-sly-use.clientLib="/libs/granite/sightly/templates/clientlib.html" data-sly-call="${clientLib.css @ categories='paiva.all'}" data-sly-unwrap/>
    <sly data-sly-include="/libs/cq/cloudserviceconfigs/components/servicelibs/servicelibs.jsp" data-sly-unwrap/>
    <sly data-sly-include="/libs/wcm/core/components/init/init.jsp" data-sly-unwrap/>
    <title>${currentPage.title || currentPage.name}</title>
</head>
<body>
    <div class="page__logo" data-sly-resource="logo"></div>
</body>
</html>

My template

My template details

A page using the template

The error

Looking at the content folder 我注意到我在组件 pagina.html 中添加的组件在内容文件夹中不存在。但是当我将一个组件添加到 parsys 时,它确实起作用了。 如果我手动添加组件,它会起作用。

这正常吗?如果没有,我该怎么办?

当您使用 UI 添加组件时,我想您的意思是将其添加到段落系统 (parsys)。发生这种情况时,将在 parsys 资源下方添加适当资源类型的新资源。

在你的例子中,你静态地包含了一个缺失的资源。然后 Sling 无法渲染它。

最佳解决方案是在模板中的 jcr:content 资源下方添加 'logo' 资源。这样,资源将在最初创建页面时存在。

您也可以在包含资源时强制使用资源类型,然后它会注入一个合成资源。 (但我会做第一个选项)