背景:我的任务是为在 Sling 上运行的网站实施搜索引擎站点地图。该站点有多个特定于国家/地区的站点,并且每个特定于国家/地区的站点都可以具有多个本地化版本-例如,http://ca.example.com/fr将是加拿大站点的法语本地化版本,并且将映射到/内容/ca/fr。我无法更改此内容结构,不幸的是,国家和本地化节点都具有相同的sling:resourceType
. 此外,管理类型需要一个 sitemap.xml 用于每个国家/地区/本地化对,而不是每个国家站点一个。
生成站点地图是一项简单的任务,我的问题是每个国家/地区/本地化对都需要一个“站点地图”节点 - 由于国家和本地化节点的添加方式(并且它们具有相同的资源类型),我目前无法想到添加站点地图节点的一种很好的自动化方法。
如果我能以某种方式定义一个“虚拟资源”,它将 /{country}/{localization}/sitemap.xml 的请求映射到处理脚本,那就太好了;我一直在浏览并遇到ResourceProvider
and OptingServlet
,但它们似乎非常专注于绝对路径 - 或者将选择器添加到现有资源中,这对我来说似乎不是一个选项。
如果有一些或多或少干净的方法来处理这个问题有什么想法吗?并非每天都添加新的国家/地区/本地化,但必须手动添加“站点地图”节点仍然不是最佳解决方案。
我一直在考虑是否有一个正在运行的服务每天更新站点地图 X 次,并将 sitemap.xml 节点生成为 JCR 中的简单文件资源,而不是涉及 Sling 解析器是否是一个更好的主意......但是在走那条路线之前,我想要一些反馈:)
编辑:
结果发现需求发生了变化,他们现在希望站点地图可以根据本地化进行配置——让我的工作更轻松,而且我不必与 Sling 对抗 :)