gpt4 book ai didi

aem - Adobe AEM 中如何应用主题?

转载 作者:行者123 更新时间:2023-12-04 17:01:21 27 4
gpt4 key购买 nike

Adobe AEM(以前称为 Adob​​e CQ)中的客户端库 (ClientLib) 功能可以轻松地按类别包含客户端库,并且每个库都可以通过依赖项引入其他库。然而,关于“主题”的文档有点薄。

link大约是我能找到的关于这个主题的所有内容。以下是示例代码的摘录:

<%-- theme only (theme-js + css) --%>
<cq:includeClientLib theme="cq.collab.calendar, cq.security" />

如果使用此标签,CQ 将如何确定要拉入哪些客户端库?它是否寻找 String[] 类型的主题属性?

或者它是否在/etc/designs 部分寻找某个目录结构?

或者它是否采用传入的类别并将 theme-js 添加到最后?
cq.collab.calendar.theme-js

还是通过 URL 调用主题?换句话说,在这种情况下,“主题”一词是一个被 URL 应用主题中的选择器替换的标记?

最佳答案

客户端库位于 cq:ClientLibraryFolder 文件夹中。该文件夹有一个名为 category 的属性。在以下示例中,cq.collab.calendar 和 cq.security 是类别:

<cq:includeClientLib theme="cq.collab.calendar, cq.security" />

当这个包含被调用时,它正在寻找任何分配给它的类别 cq.collab.calendar 或 cq.security 的 cq:ClientLibraryFolder。 使用 theme 属性会添加位于父 ClientLibraryFolder 的 themes 文件夹中的 clientLibs 的 css 和 javascript。 如果您要查看页面源代码,这些将被添加到它们自己的 css 和 js 文件中。例如,我在 geometrixx clientLibary 下创建了以下结构:
geometrixx
clientlibs
themes
myTheme (clientLibray)
css.txt
myCSS.css
js.txt
myJS.js

如果你使用带有这个 clientlib 的 theme 属性,你会得到一个 myTheme.css 和 myTheme.js 文件显示在你的源/网络选项卡中。

主题标志是一种关闭和关闭主题包含的方法。以下 cq:include 将包含 clientLibrary 中的所有 css,包括 themes 目录中的内容。
<cq:includeClientLib css="apps.geometrixx-main" />

但是,如果我添加主题标志并将其设置为 false,则主题目录下的任何内容都将被排除:
<cq:includeClientLib css="apps.geometrixx-main" themed="false" />

所以在这种情况下,myTheme.css 不会出现。需要注意的一件事是,主题标志仅适用于“纯 css 和 js 包含”类别和主题属性不适用于此。

对这个问题的回答略过这一点: What exactly does currentDesign.writeCssincludes include?

关于aem - Adobe AEM 中如何应用主题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17657364/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com