我似乎无法弄清楚 Adobe AEM(以前称为 CQ)是如何解析拇指 URL 的。
鉴于以下网址:
/content/geometrixx-outdoors/en.thumb.319.319.png
Run Code Online (Sandbox Code Playgroud)
“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
. 后者调用了一个 jsp,thumbnail.jpg.jsp
但这也不匹配。
然后有一个奇怪的目录(即,它不是一个组件)称为/libs/foundation/components/primary/cq/Page
where we find thumb.png.jsp
. 根据我添加的一些日志记录,此脚本正在参与请求;虽然我不确定如何。它只包含proxy.jsp,其中包含jcr:content 节点。
我怀疑包括 jcr:content 意味着调用:
/content/info-site/en/_jcr_content.thumb.319.319.png
Run Code Online (Sandbox Code Playgroud)
在这一点上,我不清楚会发生什么。似乎必须启动默认的 GET.java 或其他东西。但是,我找不到_jcr_content.png.jsp
或png.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
所以我想这是一个死胡同。
它不是通过 jsp 而是通过 com.day.cq.wcm.core.impl.servlets.ThumbnailServlet servlet 组件解决的。
注册此 servlet 以响应 sling/servlet/default 资源类型和拇指选择器。所以它基本上会响应该选择器的任何请求。
您可以在 osgi web 控制台的组件列表中查找它
归档时间: |
|
查看次数: |
1778 次 |
最近记录: |