发布者实例包含以下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 回答
这些脚本(不包括
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问题的解决方案 .
你看到的是与客户关系相关的js'es
加载给定js'es的脚本如下(或类似)
<cq:include path="clientcontext" resourceType="cq/personalization/components/clientcontext"/>
要么完全排除它以进行发布(wcmMode =禁用),这可能会破坏与您的发布相关的分析,或者将include更改为您开发的clientcontext组件的某些覆盖 .
但是,如果您不使用任何本机Adobe集成,那么您应该安全地将其排除在外 .