在Adobe Experience Manager中一起加载哈希和非哈希的clientlibs

在Adobe Experience Manager (AEM)中,将体验片段导出到Adobe Target会导致页面上同时加载同一客户端库的哈希版本和非哈希版本。 此行为会导致重复JavaScript执行而不会出现明显错误。 要解决此问题,请实施建议的客户端库覆盖,以便仅加载经过哈希处理的客户端库。

描述 description

环境

  • 产品: Adobe Experience Manager、Adobe Experience Manager as a Cloud Service(所有版本)
  • 版本: 6.5
  • 实例:体验片段导出到Adobe Target

问题/症状

  • 将体验片段导出到Adobe Target并在Target驱动页面上交付体验片段时,会加载同一客户端库的两个版本。
  • Target交付的页面会加载同一客户端库的两个版本。
  • 一个文件在文件名中包含哈希,如clientlibs/cws/clientlibs/clientlib-jpm/clientlib-site.min.<project-name>.js
  • 一个文件使用了非哈希文件名,如clientlibs/cws/clientlibs/clientlib-jpm/clientlib-site.min.js
  • 这两个文件包含相同的JavaScript代码。
  • 该页面执行重复的JavaScript而不显示错误消息。

原因

默认情况下,AEM页面和导出的体验片段可以包含相同的客户端库,从而导致重复加载。 叠加可确保仅包含页面自己的经过哈希处理的客户端库,这是预期且受支持的行为。

解决方法 resolution

要解决此问题,请执行以下步骤:

  1. 查看体验片段集成文档,并确认已按所述实施客户端库叠加。
  2. 确认应用叠加后,Target交付的页面上只会加载经过哈希处理的客户端库(例如clientlib-site.min.<project-name>.js)。
  3. 验证页面源中是否不再存在非哈希版本(clientlib-site.min.js)。
  4. 测试页面,以确认没有重复的JavaScript执行,并且存在所有预期的功能。

相关阅读

recommendation-more-help
experience-cloud-kcs-help-kbarticles