如何使用/理解AEM Sling资源合并、覆盖和覆盖概念
我试图理解AEM Sling资源合并的概念。根据AdobeDocs的例子,我对如何使用它感到困惑,任何人都可以用简单的组件来解释,以便更好地理解它。这里是一个解释 覆盖: 当您在AEM中覆盖组件时,意味着将组件从如何使用/理解AEM Sling资源合并、覆盖和覆盖概念,aem,sling,Aem,Sling,我试图理解AEM Sling资源合并的概念。根据AdobeDocs的例子,我对如何使用它感到困惑,任何人都可以用简单的组件来解释,以便更好地理解它。这里是一个解释 覆盖: 当您在AEM中覆盖组件时,意味着将组件从/libs/文件夹复制到/apps/.文件夹。您还可以在/apps/。 根据默认的OSGI首选项,AEM使用搜索路径来查找资源,首先搜索/apps/分支,然后搜索/libs分支,以便在/apps/下新复制的组件获得比/libs/更高的优先级 请注意,我们可以通过从ApacheSling资
/libs/
文件夹复制到/apps/.
文件夹。您还可以在/apps/。
根据默认的OSGI首选项,AEM使用搜索路径来查找资源,首先搜索/apps/
分支,然后搜索/libs
分支,以便在/apps/
下新复制的组件获得比/libs/
更高的优先级
请注意,我们可以通过从ApacheSling资源解析器工厂的配置中更改搜索路径及其优先级顺序
您可以尝试覆盖这些libs/foundation/components/
list、image、Text&image、Carousel等,。简单的组件,用于切换和更改对话框、jsp级功能以及查看行为。
覆盖组件时,请记住,对于覆盖/apps/。
组件,如果标题、组件组与/libs/。
组件相同,则在parsys的设计模式下,两个组件都可以显示在authors sidekick中。启用组件的组件可以在组件周围用括号区分它们(基础)vs(你的项目)
。
覆盖:
您还可以通过使用sling:resourceSuperType
属性来扩展/覆盖组件行为
通过创建所有必要的节点并将sling:superResourceType
属性的值设置为该组件,手动创建自定义组件将继承/libs/
组件的所有功能,即使在升级后,您仍然继承图像组件的功能
在这里,我们可以将sling:superResourceType
用于您想要继承功能的任何组件(例如从projectA组件到ProjectB等,而不仅仅限于LIB)。
随着新的Granite Touch用户界面的推出,从AEM 6.0版本开始,覆盖层的使用存在差异,请看
资源合并:
为了理解资源合并捆绑包的概念,请查看。这是一个Sling框架捆绑包(org.apache.Sling.ResourceMerge),它为您提供了在多个其他资源上合并视图的灵活性。确切的合并机制取决于资源选择器实现(即覆盖或覆盖)
通过这种资源合并,可以
/libs/
下的工具相关节点jcr:title
值覆盖到/apps
现在,仅在覆盖组件节点属性上更新/apps/下的jcr:title
属性。
这样,您可以覆盖libs中的任何组件,并将所需的功能更改更新到该特定节点
让我们再看一个sling资源合并属性的使用示例
如上图所示,我将站点节点与jcr:title
属性叠加,我添加了sling:hideProperties
,如下所示。
现在在TouchUI页面导航中查看站点标题的输出
类似的方式,您也可以使用其他属性。@VAr这让我很好地理解了。谢谢。我可以知道为什么如果我们试图隐藏属性,它不应该完全隐藏以显示,那么会出现空值吗?