23

我曾多次尝试将多个类别交替添加到 embed[] 和 dependencies[] 中。但我总是在网站上看到 JavaScript 中的依赖项解析错误。

另外,如何在像 embed[] 这样的多值条目中指定类别的顺序?有什么方法可以控制网站启动期间加载的 JavaScript 源代码的顺序?

4

2 回答 2

36

categories是要在其下发布 clientlib 的标识符列表。

dependencies应该会导致您的页面对其他客户端库有额外的请求(外部“订阅”)

embed应该将那些其他客户端库“聚合”到当前客户端库中(内部订阅)

这两个属性都可以有多个值,并且 CRXDE Lite 接口允许更改值列表中项目的顺序。

给定客户端库:

  • /etc/clientlibs/depA 类别=[“depA”]
  • /etc/clientlibs/depB 类别=[“depB”]
  • /etc/clientlibs/depC 类别=[“depC”]
  • /etc/clientlibs/useA 类别=[“useA”],依赖项=[“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]"
于 2012-11-07T17:47:16.087 回答
1

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

于 2019-04-15T13:33:13.120 回答