AEM自适应图像处理作者而非发布

时间:2016-10-12 15:25:50

标签: servlets aem

我已按照这些说明获取自定义自适应图像组件,以便在我的AEM作者安装上运行。问题是,它不像在作者上那样在发布时获取较低分辨率的图像。这可能与servlet引用位于apps目录中并因此无法在发布服务器上访问这一事实有关吗?

将配置文件命名为com.day.cq.wcm.foundation.impl.AdaptiveImageComponentServlet.xml,并将其放在应用程序的config文件夹中。这里的技巧是拥有sling.servlet.resourceTypes属性。此属性应包括自定义自适应图像组件的路径(在下面的示例中以黄色突出显示 - 对于path / apps / APPNAME / components / content / adaptiveimage中的自定义comp)。

<?xml version="1.0" encoding="UTF-8"?>

<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"

    jcr:primaryType="sling:OsgiConfig"

    adapt.supported.widths="[320,480,476,620]"

    sling.servlet.resourceTypes="[foundation/components/adaptiveimage,APPNAME/components/content/adaptiveimage]"/>

我为此使用了CRX / DE lite,所以它的工作方式略有不同。它涉及创建一个&#34; sling:OsgiConfig&#34;节点名为&#34; com.day.cq.wcm.foundation.impl.AdaptiveImageComponentServlet.xml&#34;在apps / myproject / config下。

我添加了一个名为&#34; adapt.supported.widths&#34;的字符串。使用&#34; Multi&#34;单击按钮并添加值320,480,476和620。

我添加了另一个名为&#34; sling.servlet.resourceTypes&#34;的多字符串。并添加了值&#34; foundation / components / adaptivei&#34;和&#34; myproject / components / content / adaptivei&#34;

之后,当我调整浏览器窗口大小时,我可以看到我的自定义组件的图像分辨率发生了变化。

正如我上面所述,我注意到在发布中使用此方法在作者中成功实现的自适应图像不起作用。图像将在发布时调整大小,但只会请求&#34;高&#34;图像分辨率。我已经检查过它是否只是在调用它&#34;高&#34;实际上,实际分辨率很低。当我仔细查看图像时,我将其调整到相同级别的作者和发布时,您可以看到作者之间的差异,显示更低的res图像和发布,显示更高的res图像。

这是否与我们创建了具有&#34; sling类型的节点的事实有关:OsgiConfig&#34; named&#34; com.day.cq.wcm.foundation.impl.AdaptiveImageComponentServlet.xml&#34;在apps / myproject / config下?

也许发布无法访问此节点,因为它在apps目录中?我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:0)

这不是访问问题,因为OSGI配置在内部绑定服务并且独立于登录用户。您是否可以验证配置是否在发布实例上正确绑定 -

  • 在您的发布实例上转到/system/console/configMgr
  • 搜索Adaptive Image Component Servlet并点击它。
  • 检查属性Configuration Binding是否为空,说明未绑定或新配置
  • 如果是,请单击“保存”,您的配置将生效。在您的发布实例上再次发布此测试