首页 文章

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

提问于
浏览
2

发布者实例包含以下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 回答

  • 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问题的解决方案 .

  • 0

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

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

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

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

    但是,如果您不使用任何本机Adobe集成,那么您应该安全地将其排除在外 .

相关问题