【问题标题】:How can I exclude pages created from a specific template from the CQ5 dispatcher cache?如何从 CQ5 调度程序缓存中排除从特定模板创建的页面?
【发布时间】:2012-09-04 19:10:54
【问题描述】:

我有一个特定的 Adob​​e CQ5 (5.5) 内容模板,作者将使用它来创建页面。我想从调度程序缓存中排除从此模板创建的任何页面。据我目前了解,我知道防止缓存的唯一方法是将 dispatcher.any 配置为 not 缓存特定的 URL。但在这种情况下,直到 Web 作者使用模板创建页面时,才知道 URL。我不想在每次创建页面时都返回并修改 dispatcher.any ——或者至少我想在没有其他方法的情况下自动执行此操作。我正在使用 IIS 作为调度程序。我不想缓存页面的原因是因为为这些页面呈现内容的底层 JSP 会生成动态内容,并且页面不使用查询字符串并且不会携带身份验证标头。这些页面将在不可预知的目录中创建,所以我不提前知道 URL 模式。

我该如何配置,以便从某个模板创建的任何页面将自动从调度程序缓存中排除?

似乎 CQ 应该有一些机制来尊重 HTTP 响应/缓存标头。如果 HTTP 响应标头指定不应缓存响应,那么调度程序似乎不应该缓存它——不管 dispatcher.any 怎么说。这是the CQ5 documentation 我一直在引用。

【问题讨论】:

    标签: caching dispatcher aem day-cq


    【解决方案1】:

    我不知道 Dispatcher 的 IIS 版本,但如果您添加自定义 HTTP 标头“dispatcher: nocache”,则肯定使用 Apache 模块,它不会在 Dispatcher 中缓存页面。您需要更改代码以添加此代码,类似于:

        request.setHeader("Dispatcher", "nocache");
    

    它也可以用作 html 中的元标记,但我没有尝试过。

    这在此处记录:http://dev.day.com/content/kb/home/Dispatcher/faq-s/DispatcherNoCache.html

    【讨论】:

    • 完美,正是我想要的。
    【解决方案2】:

    您可以在模板的头部使用缓存控制标签。在此处查看有关 PRAGMA 和 Cache-Control 元标记的信息:HTTP Cache- Control

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多