客户端库位于 cq:ClientLibraryFolder 文件夹中。此文件夹有一个名为 category 的属性。在以下示例中,cq.collab.calendar 和 cq.security 是类别:
<cq:includeClientLib theme="cq.collab.calendar, cq.security" />
当调用此包含时,它会查找任何 cq:ClientLibraryFolder 并分配有 cq.collab.calendar 或 cq.security 类别。 使用主题属性添加驻留在父 ClientLibraryFolder 的主题文件夹中的 clientLibs 的 css 和 javascript。 如果您要查看您的页面源代码,这些将被添加到它们自己的 css 和 js 文件中。例如,我在geometrixx clientLibary下创建了如下结构:
geometrixx
clientlibs
themes
myTheme (clientLibray)
css.txt
myCSS.css
js.txt
myJS.js
如果,你使用这个 clientlib 的主题属性,你会得到一个 myTheme.css 和 myTheme.js 文件显示在你的源/网络选项卡中。
主题标志是一种关闭和关闭主题包含的方法。以下 cq:include 将包含 clientLibrary 中的所有 css,包括主题目录中的内容。
<cq:includeClientLib css="apps.geometrixx-main" />
但是,如果我添加主题标志并将其设置为 false,则主题目录下的任何内容都将被排除:
<cq:includeClientLib css="apps.geometrixx-main" themed="false" />
所以在那种情况下, myTheme.css 不会出现。需要注意的一件事是,主题标志仅适用于“纯 css 和 js 包含”类别和主题属性不适用于此。
这个问题的答案有点过头了:currentDesign.writeCssincludes 到底包括什么?