有很多方法可以实现这一目标
如果这是一个独立模块,您可以将其放在单独的客户端库中,并仅在有条件发布时加载客户端库。
<sly data-sly-test="wcmmode.disabled" data-sly-use.clientLib="/libs/granite/sightly/templates/clientlib.html"
data-sly-call="${clientlib.css @ categories='foo'}"/>
Run Code Online (Sandbox Code Playgroud)
或者
如果这就像您想要在作者中排除的一小部分代码,您可以添加一个隐含 wcmmode 的数据属性,然后根据数据属性进行检查来保护这些函数
<body data-wcm-mode="${wcmmode.toString}">.....</body>
$(document.body).attr('data-wcm-mode') === "DISABLED"){
//do something
}
Run Code Online (Sandbox Code Playgroud)
或者
作者模式有很多 CQ/Granite 命名空间对象,您可以检查它们是否存在以推断这是作者还是发布
if(typeof typeof Granite === 'undefined' || typeof Granite.author === 'undefined'){
//do something
}
Run Code Online (Sandbox Code Playgroud)
这些实际上都不意味着真正的发布服务器,而是禁用了 wcmmode,这足以满足大多数用例。如果您必须绝对检查发布者而不仅仅是 wcmmode,请考虑检查 slingsetting 是否存在发布运行模式 [ https://sling.apache.org/documentation/bundles/sling-settings-org-apache-sling-settings.html ]。
| 归档时间: |
|
| 查看次数: |
4464 次 |
| 最近记录: |