繁体   English   中英

AEM自适应图像适用于创作者,但不适用于发布者

[英]AEM adaptive image working on Author but not on Publish

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

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

<?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,因此它的工作方式略有不同。 它涉及在apps / myproject / config下创建一个名为“ com.day.cq.wcm.foundation.impl.AdaptiveImageComponentServlet.xml”的“ sling:OsgiConfig”节点。

我单击了“多重”按钮,添加了一个名为“ adapt.supported.widths”的字符串,并添加了值320、480、476和620。

我添加了另一个名为“ sling.servlet.resourceTypes”的Multi String,并添加了值“ foundation / components / adaptiveimage”和“ myproject / components / content / adaptiveimage”

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

如上所述,我注意到在Publish中使用该方法在Author中成功实现的自适应图像不起作用。 该图像将在发布时调整大小,但仅请求“高”图像分辨率。 我检查了一下,实际上是在实际分辨率较低时,是否只是将其称为“高”。 当我仔细查看图像时,将其调整为与作者相同的大小并进行发布时,您会看到在显示高分辨率图像的作者与在高分辨率图像上显示的发布之间存在差异。

这是否与以下事实有关:我们在apps / myproject / config下创建了一个名为“ com.day.cq.wcm.foundation.impl.AdaptiveImageComponentServlet.xml”的类型为“ sling:OsgiConfig”的节点?

也许发布无法访问此节点,因为它位于apps目录中? 我在这里错过了其他东西吗?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM