在吊索URL中使用后缀有什么用处

Pra*_*kar 5 sling aem

Sling提供了一种简化资源解析的功能.它能够解析我们需要的精确资源表示在基于内容的应用程序中非常有用.

但是我无法理解一个问题是使用后缀.

例:

http://localhost:4502/content/app/mycomponent.large.html/something.html
Run Code Online (Sandbox Code Playgroud)

这里,"something.html"是后缀.我想知道在什么情况下我会选择后缀?与将信息作为选择器传递相比,我们获得了哪些优势?

Ole*_*nko 7

很难的问题,但我会尝试清理一下.

根据最佳实践,选择器不应被视为函数中的输入参数.这意味着,您应该仅使用选择器来注册servlet(或JSP文件名),并且选择器应该通知吊索您要对给定资源执行的操作或应该显示的方式.

例如,假设您有页面/page/a.html,并且您有一些移动设备的特殊表示.然后,使用/page/a.mobile.html访问它将以移动设备的方式打开此页面.

另一方面,后缀通常用于向servlet/JSP页面提供附加信息.只需检查TouchUI中的编辑器界面:网址看起来像

本地主机:4502/editor.html /内容/ pageYouEdit.html

因此,您始终保持在同一页面/editor.html,但后缀会通知Edit Interface要编辑的页面.

另一个例子:有一个很好的库动态包含内容 - https://github.com/Cognifide/Sling-Dynamic-Include.当它为某个组件配置时,在加载页面后,您的组件将包含在AJAX调用中,如下所示:

发布/ pathToThePage/_jcr_content/pathToTheComponentNode.nocache.html //应用程序/ pathToTheRenderer

在此示例中,您可以看到使用了选择器和后缀.Selector告诉我们,我们需要的这个组件的表示有什么特别之处,后缀告诉哪个组件应该呈现所请求的数据.