Aem 是否可以创建特定于运行模式的clientlib?

Aem 是否可以创建特定于运行模式的clientlib?,aem,Aem,我正在使用AEM6.0 SP2。我有一个author.css,用于编写对话框。我将clientlib包含在带有条件的模板头中 我的问题是我必须在所有模板中添加此条件。是否有一种类似于基于运行模式的方法,只需创建clientlib author,OTB在发布时自动排除库,而不需要在所有模板上显示运行模式条件 我不这么认为。您应该尝试构造模板继承,以便将代码放在超级类型的JSP中的一个位置(不要重复自己-DRY),然后让继承子模板更改不同的部分。这取决于您希望在何处使用自定义作者库,但是,在不接触页

我正在使用AEM6.0 SP2。我有一个author.css,用于编写对话框。我将clientlib包含在带有条件的模板头中


我的问题是我必须在所有模板中添加此条件。是否有一种类似于基于运行模式的方法,只需创建clientlib author,OTB在发布时自动排除库,而不需要在所有模板上显示运行模式条件

我不这么认为。您应该尝试构造模板继承,以便将代码放在超级类型的JSP中的一个位置(不要重复自己-DRY),然后让继承子模板更改不同的部分。

这取决于您希望在何处使用自定义作者库,但是,在不接触页面的情况下实现这一点的最简单的方法是,仅使用在创作模式下加载的标准AEM库之一作为库的类别,例如“cq.authoring.dialog”、“granite.ui.foundation”、“cq.authoring.editor”等。例如:

<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0" xmlns:jcr="http://www.jcp.org/jcr/1.0"
    jcr:primaryType="cq:ClientLibraryFolder"
    categories="[granite.ui.foundation]"
    />


我没有尝试在库中使用运行模式,但我认为这是不可能的。或者,您可以编写自己的jsp标记库,在其中实现这种行为。

我想您可以通过以下方式验证wcm模式:

if (CQ.WCM.getMode() == 'edit') {
    include your lib here
    .........
}

请注意,
CQ
对象在发布时可能未定义

是的,我认为这将有助于限制我的库仅限于作者。谢谢。我的问题是我不想添加这个条件,因为我有很多没有基本模板的独立模板。CQ对象确实可以在PublishThank@Shawn中找到。这是我下一步重建模板的步骤,扩展基础并减少重复代码。