我正在研究 sling 如何根据 url 调用脚本。在选择器的情况下,它似乎工作正常,但如果我不使用选择器,它会让我难以理解:
我有一个页面/content/AEMProject/English/test.html
其中有资源类型AEMProject/components/page/basepage
基于资源的页面有 4 个脚本文件:basepage.html.jsp , basepage.jsp , html.jsp, GET.jsp
。我红色了吊带最佳匹配概念。所以我有两个奇怪的案例。
1) My basepage.html.jsp
正在执行,因为我认为这是最佳匹配。如果我删除这个文件html.jsp
执行但我认为basepage.jsp
作为第二个最好的情况。
2)如果我删除basepage.html.jsp , basepage.jsp , html.jsp
文件我的GET.jsp
不渲染。
我在这里考虑将基页作为选择器,否则 IS 不是。
Thanks
引用自吊索文档 http://sling.apache.org/documentation/the-sling-engine/url-to-script-resolution.html脚本路径优先级的规则定义如下:
(请注意,具有多个选择器的脚本不会被选中,即,如果您有一个脚本 x.y.jsp,其中 x 和 y 是您的选择器,则 sling 会忽略它。但它仍然会选择该脚本y.jsp
,存在于文件夹内x
即,如果请求是针对 test.x.y.html,则
-basepage
|_x
|_y.jsp (selected)
|_x.y.jsp (ignored)
|_x.jsp (selected in case x/y.jsp is not present. The script containing the first selector is chosen in such cases.)
那么现在回答你的问题,
您的 html.jsp 始终优先于您的 component.jsp,而不是相反。
您的 GET.jsp 应该在最坏的情况下执行,即当没有其他文件存在时,除非您从其他组件继承了该文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)