Flush Agent不会清除代理clientlib路径

时间:2018-03-28 14:58:14

标签: apache2 aem cq5 client-library

我正在使用AEM 6.3并将allowProxy用于clientlib。正如预期的那样,调度程序将clientlib缓存在路径/cache/etc.clientlibs/myapp/clientlibs/clientlib.css下。但相应的jcr路径是/apps/myapp/clientlibs/clientlib/mystyle.css

因此,在部署期间修改clientlib并发布时,它们不会自动清除相应的apache缓存。今天我们手动完成这项工作。 另外,我们使用自动缓存加密器VersionedClientlibs。所以我们永远不会最终加载过时的clientlib。但是如果没有手动清除,apache缓存会堆积1000个过时的clientlib文件。

在apache上清除过时的clientlibs的建议方法是什么?版本化和代理允许?

1 个答案:

答案 0 :(得分:0)

这是一个已知的限制,我们也在每次部署后刷新整个/etc.clientlib路径。我们通过ACS dispatcher-flush-ui来做到这一点。

  

通常,在部署到生产环境时,无论如何都要刷新整个或部分调度程序缓存,以确保反映组件更改。因此,将此任务添加到该过程很容易。

如果你真的想让它成为一个自动过程,你可以:

  1. 撰写ResourceChangeListener示例here或JCR EventListener示例:here。并且基本上在clientlib路径上监听更改并复制相应的/etc.clientlibs/路径
  2. 编写ReplicationPathTransformer,以便在复制clientlib路径时,可以将其转换为相应的/etc.clientlib/路径,以便在调度程序中刷新。
  3. 希望这有帮助。