【问题标题】:How does page.thumb.319.319.png get resolved in Adobe AEM?如何在 Adob​​e AEM 中解析 page.thumb.319.319.png?
【发布时间】:2013-05-02 20:52:01
【问题描述】:

我似乎无法弄清楚 Adob​​e AEM(以前的 CQ)是如何解析拇指 URL 的。

给定以下网址:

/content/geometrixx-outdoors/en.thumb.319.319.png

“en”是对依赖于geometrixx-outdoors/components/page_home sling:resourceType 的内容的引用。

“thumb”、“319”和“319”是选择器,但是组件“page_home”没有匹配的jsp比如thumb.png.jsp来处理请求。

page_home 继承自 geometrixx-outdoors/components/page,而后者又继承自 foundation/components/page。后者有一个名为thumbnail.jpg.jsp 的jsp,但这也不匹配。

然后有一个名为/libs/foundation/components/primary/cq/Page 的奇怪目录(即它不是组件),我们在其中找到thumb.png.jsp。根据我添加的一些日志记录,这个脚本正在参与请求; 虽然我不确定如何。它只包含包含 jcr:content 节点的 proxy.jsp。

我怀疑包含 jcr:content 意味着调用:

/content/info-site/en/_jcr_content.thumb.319.319.png

在这一点上,我不清楚会发生什么。似乎默认的 GET.java 必须启动或其他东西。但是,我找不到_jcr_content.png.jsppng.GET.java/var/classes/org/apache/jsp/libs/foundation/components/primary/cq/Page/thumb_png_jsp.java 有一个类,看起来它可以工作,但我不确定它是如何被调用的。

编辑:刚刚意识到/var/classes/org/apache/jsp/libs/foundation/components/primary/cq/Page/thumb_png_jsp.java 是上述thumb.png.jsp 的编译版本,所以我想这是一个死胡同。

【问题讨论】:

    标签: aem sling


    【解决方案1】:

    不是通过 jsp 而是通过 com.day.cq.wcm.core.impl.servlets.ThumbnailServlet servlet 组件解决的。

    注册此 servlet 以响应 sling/servlet/default resourceType 和 thumb 选择器。所以它基本上会使用该选择器响应任何请求。

    你可以在osgi web控制台的组件列表中查找

    【讨论】:

    • 谢谢!我在 cq-wcm-core-5.5.6.jar 中追踪了 ThumbnailServlet 类,其中 OSGI-INF serviceComponents.xml 将其注册到带有“gif”、“png”或“jpg”扩展名的“thumb”选择器。
    猜你喜欢
    • 1970-01-01
    • 2018-03-16
    • 1970-01-01
    • 2020-04-26
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 2015-02-18
    • 1970-01-01
    相关资源
    最近更新 更多