0

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

因此,当客户端库在部署期间被修改并发布时,它们不会自动清除相应的 apache 缓存。今天我们手动执行此操作。另外,我们使用自动缓存破坏器VersionedClientlibs。所以我们永远不会加载过时的客户端库。但是,如果不进行手动清除,apache 缓存会堆积 1000 多个过时的 clientlib 文件。

在 apache 上清除版本化和代理允许的过时客户端库的推荐方法是什么?

4

1 回答 1

0

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

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

如果您真的希望这成为一个自动过程,您可以:

  1. 在此处编写ResourceChangeListener示例或 JCR EventListener示例:此处。并且基本上监听clientlib路径的变化并复制对应的/etc.clientlibs/路径
  2. 编写一个ReplicationPathTransformer以便当您的 clientlib 路径被复制时,您可以将其转换为相应的 /etc.clientlib/ 路径以在调度程序中刷新。

希望这可以帮助。

于 2018-03-28T17:17:02.433 回答