【问题标题】:AEM resource resolver failingAEM 资源解析程序失败
【发布时间】:2016-02-17 22:57:22
【问题描述】:

我正在开发 AEM 资源解析器,目前我在 Adob​​e Sling Resource Resolver Factory 上有以下配置。

/content/mywebsite/>/

我有这个标签是从一个看起来像这样的组件生成的:

<a data-desktop='/content/mywebsite/desktop.html'
   data-android-href='/content/mywebsite/android.html' 
   data-ios-href='/content/mywebsite/mywebsite/ios.html'
   href='/content/mywebsite/normal.html'>Click here</a>

理想情况下,这应该被解决为类似 L

<a data-desktop='/desktop.html'
 data-adroid-href='/android.html'
 data-ios-href='ios.html' 
 href='/normal.html'>Click here</a>

具有讽刺意味的是,上述标签中的最后一个 href 也没有被资源解析器解析,我仍然在调度程序上得到未解析的 URL。

只有&lt;a href='/content/mywebsite/something.html&gt;&lt;/a&gt;' 的标签的所有其他资源解析器都被解析。我不明白为什么资源解析器不选择具有多个数据元素的解析器。

【问题讨论】:

    标签: aem sling


    【解决方案1】:

    你确定这取决于属性的数量吗?看起来您的配置只影响资源解析而不影响传出映射。该规则将应用于传入请求,因此当用户使用/something.html 访问您的 AEM 实例时,资源解析器将查找位于 /content/mywebsite.something 的资源以及映射到根目录(如果有)的其他路径,但到目前为止据我了解,它不会影响 AEM 呈现指向该内容的链接的方式。

    尝试更改您的规则,使其使用双向映射:/content/mywebsite/:/

    引用OSGi控制台中Apache Sling Resource Resolver Factory配置中URL Mappings字段的描述:

    应用于路径的映射列表。传入映射应用于请求路径以映射到资源路径,传出映射应用于将资源路径映射到后续请求中使用的路径。表单是&lt;internalPathPrefix&gt;&lt;op&gt;&lt;externalPathPrefix&gt;,其中&lt;op&gt; 是"&gt;" 用于传入映射,"&lt;" 用于传出映射,":" 用于双向应用的映射。通过比较和替换 URL 前缀,按配置顺序应用映射。注意:不推荐使用"-" 作为&lt;op&gt; 值来指示双向映射。 (resource.resolver.mapping)

    您可以使用 Resource Resolver 页面上的 Configuration Test 字段轻松测试您在 Apache Sling Resource Resolver Factory 中设置的配置OSGi 控制台。你可以在http://&lt;host&gt;:&lt;port&gt;/system/console/jcrresolver找到它

    使用 Resolve 和 Map 按钮查看路径如何双向转换。

    此外,如果组件之间的行为不一致,请检查它们是否都使用 resourceResolver#map 映射 URL(如果 Externalizer 尚未涵盖)。

    【讨论】:

      猜你喜欢
      • 2016-11-14
      • 1970-01-01
      • 2020-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多