如何从CQ5调度程序缓存中排除从特定模板创建的页面?

时间:2012-09-04 19:10:55

标签: caching dispatcher cq5 day-cq

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

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

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

2 个答案:

答案 0 :(得分:6)

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

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

它也可能在html中用作元标记,但我没试过这个。

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

答案 1 :(得分:0)

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