sling:resourceSuperType 如何影响吊索分辨率?
How is sling:resourceSuperType is impacting sling resolution?
您好正在了解吊索分辨率的工作原理。
我遇到了 Adobe aem 开发人员指南中提到的这种情况
https://docs.adobe.com/docs/en/aem/6-2/develop/the-basics.html
这是提到的场景-
/
a(没有任何资源超类型或资源类型)
b (sling:resourceSuperType = a)
c (sling:resourceSuperType = b)
x (sling:resourceType = c)
y (sling:resourceType = c, sling:resourceSuperType = a)
/x 的类型层次结构是 [c, b, a, ] 而 /y 的层次结构是 [ c, a, ] 因为 /y 有 sling:resourceSuperType 属性 而 / x 没有,因此它的超类型取自它的资源类型。
现在我明白了 /x 是如何解析的。但我不确定 /y。首先它解析为 /c。它本身有一个 sling:resourceSuperType 作为 b。吊索分辨率也应该不转到 /b 吗?如何覆盖超类型并将资源解析为 a 而不是 b。
如 Apache Sling documentation 中所述,如果为特定资源定义了 sling:resourceSuperType
,它将被使用。如果它不存在,框架将使用由 sling:resourceType
.
指向的资源定义的 sling:resourceSuperType
也就是说,在 /y
的情况下,/b
不会被视为超类型。 /y
定义的sling:resourceSuperType
本身直接指向/a
。它将有效地隐藏在 /c
处定义的 sling:resourceSuperType
属性(并指向 /b
),否则将被考虑在内。
这个例子在你链接到的 documentation page 上描述得很好。
根据我的经验,如果资源类型层次结构由定义组件的一组节点定义并作为 /apps
或 [=22= 的后代出现在存储库中,则大多数自定义 AEM 组件更易于维护](当在继承层次结构中包含 OOTB 组件时)。 /content
子树中存在的特定组件实例(包括负责呈现整个页面的实例)可以明确地定义一个 sling:resourceType
来确定其类型(继承与否)。就个人而言,我不喜欢在作为 /content
子树一部分的资源级别定义 sling:superResourceType
,因为这会使层次结构更难推理。在我的脑海中,我想不出一个可以证明这种权衡的用例。如果他们知道一个好的,也许其他人可以权衡。
您好正在了解吊索分辨率的工作原理。
我遇到了 Adobe aem 开发人员指南中提到的这种情况
https://docs.adobe.com/docs/en/aem/6-2/develop/the-basics.html
这是提到的场景- / a(没有任何资源超类型或资源类型)
b (sling:resourceSuperType = a)
c (sling:resourceSuperType = b)
x (sling:resourceType = c)
y (sling:resourceType = c, sling:resourceSuperType = a)
/x 的类型层次结构是 [c, b, a, ] 而 /y 的层次结构是 [ c, a, ] 因为 /y 有 sling:resourceSuperType 属性 而 / x 没有,因此它的超类型取自它的资源类型。
现在我明白了 /x 是如何解析的。但我不确定 /y。首先它解析为 /c。它本身有一个 sling:resourceSuperType 作为 b。吊索分辨率也应该不转到 /b 吗?如何覆盖超类型并将资源解析为 a 而不是 b。
如 Apache Sling documentation 中所述,如果为特定资源定义了 sling:resourceSuperType
,它将被使用。如果它不存在,框架将使用由 sling:resourceType
.
sling:resourceSuperType
也就是说,在 /y
的情况下,/b
不会被视为超类型。 /y
定义的sling:resourceSuperType
本身直接指向/a
。它将有效地隐藏在 /c
处定义的 sling:resourceSuperType
属性(并指向 /b
),否则将被考虑在内。
这个例子在你链接到的 documentation page 上描述得很好。
根据我的经验,如果资源类型层次结构由定义组件的一组节点定义并作为 /apps
或 [=22= 的后代出现在存储库中,则大多数自定义 AEM 组件更易于维护](当在继承层次结构中包含 OOTB 组件时)。 /content
子树中存在的特定组件实例(包括负责呈现整个页面的实例)可以明确地定义一个 sling:resourceType
来确定其类型(继承与否)。就个人而言,我不喜欢在作为 /content
子树一部分的资源级别定义 sling:superResourceType
,因为这会使层次结构更难推理。在我的脑海中,我想不出一个可以证明这种权衡的用例。如果他们知道一个好的,也许其他人可以权衡。