【发布时间】:2014-07-02 14:40:30
【问题描述】:
我正在将一个大型网站从 MS CMS 2002 转换为 Adobe CQ5。在现有的 CMS 中,所有页面都以 .htm 扩展名引用。当我在 CQ5 中创建一个新页面时,它始终具有 .html 扩展名。有什么方法可以强制 CQ5 对页面使用 .htm 扩展名?
【问题讨论】:
我正在将一个大型网站从 MS CMS 2002 转换为 Adobe CQ5。在现有的 CMS 中,所有页面都以 .htm 扩展名引用。当我在 CQ5 中创建一个新页面时,它始终具有 .html 扩展名。有什么方法可以强制 CQ5 对页面使用 .htm 扩展名?
【问题讨论】:
可以在名为SlingServletResolver 的OSGi 服务的配置中修改呈现内容的默认扩展列表。要更改它,请打开以下路径:
/system/console/configMgr/org.apache.sling.servlets.resolver.SlingServletResolver
在您的 CQ 安装上并将 htm 添加到最后一个选项(默认扩展)。您也可以使用sling:OsgiConfig nodes 自动配置服务。
【讨论】:
除了其他答案之外,另一种方法是创建从您的 htm 到新 html 页面的内部重定向。您可以在 /etc/map 下创建一个 Sling 映射,它将 htm 请求重定向到 html。
可以在http://sling.apache.org/documentation/the-sling-engine/mappings-for-resource-resolution.html 的 Root Level Mappings -> Mapping Entry Specification 下找到有关配置吊索映射的信息
【讨论】:
Tomek 为这个问题提供了最佳解决方案。但是,此解决方案将更改所有页面的扩展类型。如果您想要针对特定页面的另一种解决方案,那么这里是解决方案:
通过将此文件复制到应用程序文件夹来覆盖 /libs/foundation/components/page 的 head.jsp,并在其中指定 content-type 和 content="text/htm。 现在,无论您需要 htm 或任何其他扩展扩展名,您都必须将此组件作为每个组件或模板的 superResoucetype 引用。
【讨论】: