1

我正在接受 Adob​​e CQ5 开发人员的培训,并试图了解组件中当前资源的位置。例如,在为图像组件创建小部件时: 在此处输入图像描述 属性是: 属性是:

然后是一个复杂的组件:

在此处输入图像描述 属性是: 属性是:

为什么是这样?我只是没有看到与当前资源和 jsp 文件的关系以供参考。为什么复杂组件不能只有 ./value 而不是 ./image/value?

4

1 回答 1

1

主要原因是属性相互关联以定义如何绘制图像,并且应用程序的其他部分也需要这种安排。当作者配置镜像时,AEM 会在你页面的 jcr:content 节点下创建一个镜像节点。

/content/mysite/mypage/jcr:content/image/<attributes>

基础Image类以及AbstractImageServlet期望某些属性出现在图像节点上。

例如,请注意这两个 URL 显示相同的图像。

 1. http://localhost:4502/content/geometrixx/en/events/dsc.img.png
 2. http://localhost:4502/content/dam/geometrixx/banners/dsc.jpg

第一个 URL 指向cq:page节点并添加了一个img选择器。image此选择器调用一个 servlet,该 servlet 从它在页面节点下找到的第一个节点提取信息jcr:content。该image节点具有fileReference指向实际 DAM 图像的属性,即第二个 URL。servlet 然后呈现fileReference属性中指定的 URL。

在您的第一个示例(徽标组件)中,属性与组件相关。如果您在 path 页面上有一个 parsys par,那么如果您将 logo 组件添加到页面,您的cq:page节点下将有以下路径。

/content/mysite/mypage/jcr:content/par/logo/<attributes>

现在,当您使用img选择器调用图像 servlet 时,它将考虑徽标的属性。

http://localhost:4502/content/mysite/mypage/jcr:content/par/logo.img.png

对于第二个示例(复杂组件),您正在将图像属性组织在一个image节点下,以将这些属性与其他设置隔离开来。

于 2014-01-15T07:17:34.810 回答