2014-01-14 26 views
1

我正在接受Adobe CQ5开发人员的培训,我正在尝试了解Component中当前资源的位置。例如,对于图像组件创建窗口小部件时: enter image description here 的属性是: The Properties are:了解当前资源的当前位置

,然后用复杂的组件:

enter image description here 的属性是: The properties are:

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

回答

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选择器。此选择器调用一个servlet,该servlet从在页面的jcr:content节点下找到的第一个image节点中获取信息。 image节点具有指向实际DAM图像的fileReference属性,该图像是第二个URL。然后该servlet呈现fileReference属性中指定的URL。

在您的第一个示例 - 徽标组件中,属性是相对于组件的。如果在路径par的页面上有解析器,那么如果将徽标组件添加到页面中,则在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节点下属性来隔离来自其他设置的那些属性。

+0

这开始有意义。我将需要重读这几次,但我开始看到创建组件的关系以及如何转换为实际创作站点以及如何设置参考。 – knennigtri