我正在尝试使用基础中的图像组件,它接受图像并显示到页面。如果我将组件从基础复制到我的项目文件夹,然后通过页面访问组件,它会接受图像并在页面上显示为损坏。
1)我把我所有的图像都保存在 DAM 中。但是图像组件正在寻找下面的路径
/content/XXX/en/sah/_jcr_content/img.img.png/1366177510193.png
您能否解释一下图像组件的概述。
提前致谢!!!!
我不确定你改变了什么,因为很难从这段非常有限的代码中弄清楚。但是标准图像渲染的基础是这样的。
您在 parsys 上拖动图像组件,从图像组件中的内容查找器中拖动图像。
实际渲染发生如下。查看图像组件时,您会在 image.jsp 中看到图像的“假定”渲染(它被写入输出流)。此图片已收到请求后缀为“.img.png”。这是在 requestSuffix 属性中图像组件的对话框中定义的,并且标准设置为“.img.png”
我们现在有一个指向页面上资源的 url,但 sling 尚未解析实际图像。当我们在 sling 解析链中更上一层楼时,我们会在 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
是你的 parsys
图像未正确呈现的一个原因可能是您的自定义页面组件没有作为 sling:resourceSuperType 的基础页面组件,这意味着不会调用 img.png servlet(因为它在 sling 上找不到它解析链),从而破坏图像。
当您将图像组件从 libs 复制到应用程序目录时,您还必须复制位于该图像组件下方的 Java 文件。
打开该 Java 文件并重命名包,然后编译它。
您的问题将得到解决。