ClientLibraryFolder类型的embed []和dependencies []之间有什么区别?

问题描述 投票:19回答:2

我试图多次添加多个类别来交替嵌入[]和依赖[]。但我总是在网站上看到JavaScript中的依赖项解析错误。

另外,如何在多值条目中指定类别的顺序,如embed []?有没有什么办法可以控制网站启动时加载的JavaScript源的顺序?

adobe cq5
2个回答
33
投票

categories是发布clientlib的标识符列表。

dependencies应该导致您的页面有额外的请求到其他clientlibs(外部“订阅”)

embed应该将那些其他clientlib“聚合”到当前的clientlib(内部订阅)

两个属性都可以有多个值,CRXDE Lite界面允许更改值列表中的项目顺序。

鉴于Clientlibs:

  • / etc / clientlibs / depA categories = [“depA”]
  • / etc / clientlibs / depB categories = [“depB”]
  • / etc / clientlibs / depC categories = [“depC”]
  • / etc / clientlibs / useA categories = [“useA”],dependencies = [“depA”,“depB”]
  • / etc / clientlibs / useB categories = [“useB”],embed = [“depB”,“depC”]

如果页面使用“useA”<cq:includeClientLib categories="useA"/>,那么HTML应该有depA,depB,useA的请求(通过它们的相应URL,即/etc/clientlibs/depA.css

如果页面使用“useB”<cq:includeClientLib categories="useB"/>,那么HTML应该只有一个useB请求。 /etc/clientlibs/useB.css的内容将是depB,depC,useB的内容的串联。

{localhost} /system/console/configMgr/com.day.cq.widget.impl.HtmlLibraryManagerImpl的库管理器具有调试配置,以确定请求是否实际连接。这在http://dev.day.com/docs/en/cq/current/deploying/configuring_osgi.html#par_variable_18记录

要定义多个依赖项(假设您使用maven从文件系统构建并安装到CQ5中),clientlibs文件夹将具有需要以下属性的文件“.content.xml”:

dependencies="[depB,depC]"

0
投票

要检查所需的clientlibs是否为embed,您可以使用ClientLibs Optimizer Tool:https://adobe-consulting-services.github.io/acs-aem-tools/features/clientlibs-optimizer/index.html它还为您提供了保留嵌入式clientlibs的顺序

© www.soinside.com 2019 - 2024. All rights reserved.