旧的javascript文件正在编译到var / clientlibs目录中

时间:2014-07-29 12:36:59

标签: cq5 aem

我刚刚更新了CQ5.6实例中的一些javascript文件。我删除了vars / clientlibs文件夹,以便CQ在下一页加载时重新生成相应的文件。当它重新生成它时,它仍然包含原始的javascript。我仔细检查了,创作和发布实例都有新的javascript,所以我不知道它在哪里抓住旧的东西。

那么,CQ在哪里缓存从中生成var文件的文件?

3 个答案:

答案 0 :(得分:4)

CQs clientlibs由HtmlLibraryManager缓存。使用jad,JDecompiler来查看它的实现。

我找到的一个解决方法是重命名clientlib的节点。因此,如果它是myClientLib,只需将其重命名为myClientLib_somethingelse,然后它将使用新的js(它清除HtmlLibraryManager的clientlib缓存)。之后你可以重新命名。

<强>更新

我忘了提一个可以重建clientlib的url,在这里你也可以使缓存无效:/libs/granite/ui/content/dumplibs.rebuild.html。它有时会失败,但也许它会起作用。 :d

它也是检查clientlibs的有用网址:/libs/granite/ui/content/dumplibs.html

答案 1 :(得分:2)

删除/ var / clientlibs缓存后,您可能还想尝试从Adobe Granite UI Commons (com.day.cq.cq-widgets)视图重新启动/system/console/bundles捆绑包。

该bundle提供com.day.cq.widget.impl.HtmlLibraryManagerImpl服务,该服务负责编译clientlibs,理论上也可以保存一些内存缓存。

有一点,JSP编译器肯定是这样,删除/ var / classes / org / apache / jsp文件夹不足以强制重新编译而不重新启动JSP脚本支持包。

答案 2 :(得分:0)

这是一个普遍的问题,当CSS / JS在客户端浏览器上缓存时,这将是最糟糕的。我建议在您的站点中使用ACS Commons,Versioned Clientlibs功能在css / js文件中添加版本号。请参阅:http://adobe-consulting-services.github.io/acs-aem-commons/features/versioned-clientlibs.html