CQ5中的图像组件

时间:2013-04-17 07:24:52

标签: jsp cq5

我正在尝试使用基础的图像组件,它接受图像并显示到页面。如果我将组件从基础复制到我的项目文件夹,然后通过页面访问组件,它接受图像并在页面上显示为已损坏。

1)我把所有图像保存在DAM中。但图像组件正在寻找下面的路径

/content/XXX/en/sah/_jcr_content/img.img.png/1366177510193.png

您能否解释一下图像组件的概述。

提前致谢!!!!

2 个答案:

答案 0 :(得分:2)

我不确定你改变了什么,因为很难从这段非常有限的代码中找出答案。但标准图像渲染的基础是这样的。

将图像组件拖到解析器上,从图像组件中的内容查找器拖动图像。

实际渲染发生如下。在查看图像组件时,您会在image.jsp中看到图像的“假定”渲染(它被写入到流出)。此图像已收到请求后缀“.img.png”。这是在requestSuffix属性中的图像组件对话框中定义的,标准设置为“.img.png”

我们现在有一个页面资源的URL,但吊索尚未解析实际图像。当我们在sling resolving chain中进一步向上时,我们在libs / foundation / components / page组件中看到了一个img.png.jsp文件。在sling解析图像组件期间,由于.img.png的请求后缀,最终会在此servlet中结束。正是这个servlet负责将图像实际写入响应。在这个过程中,它确实为实际图像命名了“图像”。

所以你的最终路径将是这样的:

pathToPageWithImageComponentOnIt/_jcr_content/containerComponent/image.img.png/imageSuffix.jpg

所以在你的情况下,这将转化为:

/content/XXX/en/_jcr_content/par/image.img.png/1366177510193.png

假设par是你的解析

您的图像无法正确呈现的一个原因可能是您的自定义页面组件没有基础页面组件作为sling:resourceSuperType这意味着不会调用img.png servlet(因为它无法找到它)在吊索解析链上)从而打破了形象。

答案 1 :(得分:0)

将图像组件从libs复制到apps目录后,您还必须将Java文件复制到该图像组件下面。 打开该Java文件并重命名该包,然后进行编译 您的问题将得到解决。