如何阻止AEM在发布者实例上包含作者实例javascripts

时间:2016-09-15 01:19:32

标签: cq5 aem

发布商实例包含以下javascript文件:

  • /etc/clientlibs/granite/jquery.min.js
  • /etc/clientlibs/granite/utils.min.js
  • /etc/clientlibs/granite/jquery/granite.min.js
  • /etc/clientlibs/foundation/main.min.js
  • /etc/clientlibs/granite/jquery/granite/csrf.min.js

最好将它们排除在性能之外,以及我使用jQuery 2.0作为AEM网站的一部分这一事实。

2 个答案:

答案 0 :(得分:1)

这些脚本(不包括csrf.min.js)属于cq.foundation-main类别的一部分。您可以使用此实用程序进行检查。
http://localhost:4502/libs/granite/ui/content/dumplibs.test.html?categories=cq.foundation-main

如果您通过扩展OOTB wcm/foundation/components/page来创建页面模板组件(假设您使用的话),AEM将在head部分添加这些脚本。更具体地说,它们包含在OOTB页面组件下的headlibs.html文件中。

要解决此问题,您可以在组件中覆盖此文件,并在下面注释该行或仅在编辑wcmmode时有条件地包含该文件。
<sly data-sly-test="${wcmmode.edit}" data-sly-call="${clientLib.all @ categories='cq.foundation-main'}" />

对于基于JSP的组件(foundation/components/page),在headlibs.jsp中完成了同样的事情。

顺便说一下,你不想删除CSRF JS。这是AEM解决CSRF问题的解决方案。

答案 1 :(得分:0)

你看到的是与客户关系有关的js'es

加载给定js'es的脚本如下(或类似)

<cq:include path="clientcontext" resourceType="cq/personalization/components/clientcontext"/>

要么完全排除它以进行发布(wcmMode =禁用),这可能会破坏与您的发布相关的分析,或者将include更改为您开发的clientcontext组件的某些覆盖。

如果您不使用任何原生的Adobe集成,那么只要排除该东西就应该是安全的。