我正在使用 AEM 6.2 并尝试使用下面的代码在 crx 中创建 parsys 组件
但是,在编辑模式下,该 parsys 的高度为 0px。
附上截图。
当我手动将高度更改为某些值时,例如。 40px,看起来不错。
注意:我没有在上面的页面使用任何客户端库。 (没有CSS和JS)
此外,所有示例站点(例如 geomatrix 等)都可以正确显示 parsys。
有人可以指导我做错了什么吗?
我认为问题出在组件或此处显示的任何代码之外。
我认为发生的情况是为 droptarget 占位符提供其尺寸的 div 的 css 样式未加载。
它作为 AEM 创作客户端库的一部分加载,您应该从基础页面组件继承该库。
检查页面组件的 sling:resourceSuperType 属性。它应该指向 wcm/foundation/components/page 或 wcm/foundation/components/page 或从具有该功能的组件继承。
如果设置了,那么您可能已经阻止了其中的一个脚本,很可能是 head.html。
在页面组件渲染脚本的 head 部分包含以下代码。
<!--/* Include Adobe Dynamic Tag Management libraries for the header
<sly data-sly-include="/libs/cq/cloudserviceconfigs/components/servicelibs/servicelibs.jsp" data-sly-unwrap/>
*/-->
<!--/* Initializes the Experience Manager authoring UI */-->
<sly data-sly-include="/libs/wcm/core/components/init/init.jsp" data-sly-unwrap/>
为了解决您的问题,您需要在编写 parsys 代码之前将 init.jsp 包含在第一个中。我的意思是这样写。
<head>
<sly data-sly-include='/libs/wcm/core/components/init/init.jsp' />
</head>
<body>
<sly data-sly-resource="${'par' @resourceType='foundation/components/parsys'}" />
</body>
我认为 @l-klement 正确地指出了问题出在外部组件上。当我将 landpage.html 文件重命名为 body.html 时,它开始正常工作。我认为这可能是因为
wcm/foundation/components/page
中存在不同的文件,如 head.html 等,需要提供正确的样式并加载某些所需的客户端库,这些库为 parsys 分配正确的样式。
如果上述情况属实,我的下一个问题是,如何拥有自己的 head.html、body.html、header.html、footer.html 等文件而不影响 parsys 样式?
我也有同样的问题。事实证明我的 css 不知何故导致了这个。尝试在网络中阻止模板 css(或 js),看看是否可以解决问题。