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

时间:2012-10-24 15:19:54

标签: adobe cq5

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

另外,如何在多值条目中指定类别的顺序,如embed []?我们有什么方法可以控制在网站发布期间加载的JavaScript源的顺序吗?

2 个答案:

答案 0 :(得分: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的请求(通过相应的网址,即/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]"

答案 1 :(得分:0)

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