Sling Rewriter 更改静态资源 URL

Posted

技术标签:

【中文标题】Sling Rewriter 更改静态资源 URL【英文标题】:Sling Rewriter to change the static resource URL 【发布时间】:2020-04-23 17:36:17 【问题描述】:

我们在我们的项目中使用了 sling rewriter 来转换资源 URL 与我们 OSGI 配置中定义的静态域。这对于在组件的 include tags 属性中定义的标签工作正常。例如 - 样式标签和属性是数据角色时。它按预期转换网址 -

但对于以下情况,需要转换 background:url 的 url。与其从 localhost 中选择,不如将其转换为 OSGI 配置中提到的静态 url-

<style>
@media screen and (min-width: 1200px) 
.lazy-bg--4021ca1508b28f815a670f961c7fcba6 
background:url(http://localhost:4512/content/dam/unilever/magnum/spain/static_not_in-use_products_/magnum_vegan_key_visual_green_classic_2880x1200_72dpi-1395468-jpg.jpg.ulenscale.1500x649.jpg) no-repeat;
    background-size: cover
  

由于 background:url 不是样式标签的属性,所以 url 没有被转换。 你能提供一些意见吗?

【问题讨论】:

我认为这就是 Sling Re-writer 的工作方式,它只重写 html 属性。查看this link 了解更多选项。 我们需要更多信息来帮助您。 1)您是在谈论 html 文件还是 css 文件(默认情况下仅重写 html 文件)。 2)你是如何实现的?我假设它基于 org.apache.sling.rewriter.DefaultTransformer。 3) 最佳猜测答案:它是一个 SAX 内容处理程序。所以一切都在那里 - 但只有 html 被 SAX 解析器完全解析。 这意味着 Sling 重写器不适用于 background:url? 可以重写后台url。但是在您的 SAX ContentHandler 中,当您在 你解决了吗? 【参考方案1】:

由于重写器仅处理一组配置的属性,因此您需要手动映射此资源路径(使用资源解析器 api)。

【讨论】:

以上是关于Sling Rewriter 更改静态资源 URL的主要内容,如果未能解决你的问题,请参考以下文章

从 apache sling 启动板 7 到 sling 11

Azure 应用服务静态 URL 案例更改

使用 Sling Launchpad 进行生产

将 sling:OsgiConfig 读入 @ObjectClassDefinition

从 Sling API JSON Post 获取代码 500

sling[C++]一个自然语言语法分析框架