CQ 5.6.1中的Apache Sling资源映射

时间:2017-10-16 09:39:49

标签: aem cq5 sling

我花了好几个小时摆弄这个Resource Mapping,但没有运气。我在/etc/map/http中添加了一个名为GoogleAnalyticsMap的新节点。它具有以下属性:

Name: jcr:primaryType
Type: Name
Value: sling:Mapping

Name: sling:internalRedirect
Type: String
Value: /content/dam/website/Common/my_google_analytics_key.html

Name: sling:match
Type: String
Value: [^/]+/[^/]+/my_google_analytics_key.html

有趣的是,当我查到/system/console/jcrresolver or Adobe CQ Web Console Sling Resource Resolver时。它解析为以下

Pattern: ^http/[^/]+/[^/]+/my_google_analytics_key.html
Replacement: /content/dam/website/Common/my_google_analytics_key.html
Redirect: internal

我不知道他们如何注册^[^/]+/[^/]+/welcome$,如示例中所示,并且没有' http'那里。然而,每当我尝试在本地点击模式(即http://localhost:4502/my_google_analytics_key.html)时,它只显示未找到的资源。还通过 Adob​​e CQ Web控制台吊索资源解析器中提供的配置测试部分进行了检查,它表示无法解决。我错过了什么吗?

    , type=sling:nonexisting, path=/my_google_analytics_key.html, resource=[NonExistingResource, path=/my_google_analytics_key.html]

感谢您的帮助。

P.S。我也检查了Sling documentation,但是,令我感到困惑的是我无法添加sling:alias,也许它也与吊索版本有关。然而,一旦sling:match正常工作,我应该在第二个问题后再问这个问题。

修改:摆弄一点,将sling:match更改为localhost.4502/google.html会让localhost:4502/google.html重定向到所需的DAM项目。好吧,我仍然要求无域名'匹配虽然..所以我没有麻烦使用映射我所有的环境..

修改,更新:

  • 显然由于我将新sling:Mapping放在http文件夹下,它将始终在路径前加上http。也许该示例意在<{1}}文件夹下而不是
  • 下一个项目是,它总是假设匹配的项目将是由点分隔的协议,域和端口(是的,偶数http不是有效的输入,CQ或者更确切地说吊索将以某种方式消毒它)。像\.这样的东西会接受任何域和那些指定的端口。我确实不知道是否真的如此,因为他们说正则表达式,但它并没有那么多正则表达式。
  • 有人说*.(4502|4503|80|443)/my_google_analytics_key.html应该是sling:internalRedirect - 是的我知道文档说String[]。我没有进一步测试,并将其视为原样..

0 个答案:

没有答案