Jsp Adobe CQ/AEM客户端库通道属性与CQ:includeClientLib标记的交互

Jsp Adobe CQ/AEM客户端库通道属性与CQ:includeClientLib标记的交互,jsp,adobe,aem,Jsp,Adobe,Aem,我正在努力提高adobe cq中的页面性能,我看到了各种网站(,),其中提到了通道属性,用于cq:ClientLibraryFolder类型的节点 我建立了一个包含两个组件的小示例(cmpA和cmpB)。两者的类别值均为cmps.cmp,并位于应用程序目录中。然后,我在etc文件夹中创建了另一个cq:ClientLibraryFolder类型的节点,该节点的嵌入属性为cmps.cmp,类别属性的值为cmps.all 在我看来,我有以下几点,这将导致两个组件在各自的client-lib文件夹中的c

我正在努力提高adobe cq中的页面性能,我看到了各种网站(,),其中提到了通道属性,用于cq:ClientLibraryFolder类型的节点

我建立了一个包含两个组件的小示例(cmpAcmpB)。两者的类别值均为cmps.cmp,并位于应用程序目录中。然后,我在etc文件夹中创建了另一个cq:ClientLibraryFolder类型的节点,该节点的嵌入属性为cmps.cmp,类别属性的值为cmps.all

在我看来,我有以下几点,这将导致两个组件在各自的client-lib文件夹中的css文件连接在一起

<cq:includeClientLib css="cmps.all" />

当我添加时!触摸由于cmpB的频道属性覆盖了chrome中的userAgent到iPhone,因此cmpB的css仍然连接在一起

  • localhost:4502/libs/cq/ui/content/dumplibs.html验证通道属性是否设置为!触碰
  • 通过在etc/clientlibs/foundation/librarymanager/DefaultChannelDetector.js中添加console.log,我已经确认当前频道是touch
  • 在url中加载clientlibs.css时添加?debug=true可确认包含来自两个clientlibs的css
  • 我希望在给定特定用例的情况下,使用channels属性逐步淘汰某些css(最终是js)文件,同时不要像文档含糊其辞地建议的那样,用额外的逻辑过度复杂化标记。我的目标是最终生成一个css文件(通过Config Manager(服务器/系统/控制台/configMgr)中的Day CQ HTML库管理器进行缩小和压缩)


    我是否错误地使用了channels属性?它是否意味着要以我使用它的方式使用?如有任何见解,将不胜感激。

    必须在clientlib节点上设置
    channels
    属性。如果您想为特定频道创建特殊css/js,则需要至少创建2个clientlib:

  • 第一个clientlib将具有
    categories=[cmps.all]
  • 第二个clientlib将具有
    categories=[cmps.all]
    channels=[!touch]

  • 第一个总是为cmps加载。而第二个只为非接触频道加载。

    谢谢Kaiser,我在sub-clientlib节点上设置了它,嵌入节点无论如何都会选择它们。对于其他用户,我当前的设置是cmpA with categories=[cmps.cmpA]cmpB with categories=[cmps.cmpB]global with categories=[cmps.all],embed=[cmps.cmpA]touch with categories=[cmps.all],channels=[touch],embed=[cmps.cmpB],然后将加载我需要的内容。