【问题标题】:How to make CQ5 use .htm extensions instead of .html?如何让 CQ5 使用 .htm 扩展名而不是 .html?
【发布时间】:2014-07-02 14:40:30
【问题描述】:

我正在将一个大型网站从 MS CMS 2002 转换为 Adob​​e CQ5。在现有的 CMS 中,所有页面都以 .htm 扩展名引用。当我在 CQ5 中创建一个新页面时,它始终具有 .html 扩展名。有什么方法可以强制 CQ5 对页面使用 .htm 扩展名?

【问题讨论】:

    标签: adobe aem


    【解决方案1】:

    可以在名为SlingServletResolver 的OSGi 服务的配置中修改呈现内容的默认扩展列表。要更改它,请打开以下路径:

    /system/console/configMgr/org.apache.sling.servlets.resolver.SlingServletResolver
    

    在您的 CQ 安装上并将 htm 添加到最后一个选项(默认扩展)。您也可以使用sling:OsgiConfig nodes 自动配置服务。

    【讨论】:

    • 这个解决方案对我来说非常有效。只需将“htm”添加到 SlingServletResolver 的默认扩展名列表中,CQ5 就可以检索文件,无论请求 URL 中使用的是 .html 还是 .htm 扩展名。无需重定向或文件重命名!
    【解决方案2】:

    除了其他答案之外,另一种方法是创建从您的 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 下找到有关配置吊索映射的信息

    【讨论】:

      【解决方案3】:

      Tomek 为这个问题提供了最佳解决方案。但是,此解决方案将更改所有页面的扩展类型。如果您想要针对特定​​页面的另一种解决方案,那么这里是解决方案:

      通过将此文件复制到应用程序文件夹来覆盖 /libs/foundation/components/page 的 head.jsp,并在其中指定 content-type 和 content="text/htm。 现在,无论您需要 htm 或任何其他扩展扩展名,您都必须将此组件作为每个组件或模板的 superResoucetype 引用。

      【讨论】:

      • 这没有提供问题的答案。要批评或要求作者澄清,请在他们的帖子下方发表评论 - 您可以随时评论自己的帖子,一旦您有足够的reputation,您就可以comment on any post
      • @vonPetrushev 我没有足够的声望点(即 50 点)来评论其他人,所以我添加了这个答案。
      猜你喜欢
      • 2016-01-06
      • 1970-01-01
      • 2016-03-01
      • 1970-01-01
      • 2016-12-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      相关资源
      最近更新 更多