在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
要解决此问题,请执行以下步骤:
- 查看体验片段集成文档,并确认已按所述实施客户端库叠加。
- 确认应用叠加后,Target交付的页面上只会加载经过哈希处理的客户端库(例如
clientlib-site.min.<project-name>.js)。 - 验证页面源中是否不再存在非哈希版本(
clientlib-site.min.js)。 - 测试页面,以确认没有重复的JavaScript执行,并且存在所有预期的功能。
相关阅读
- 将体验片段导出到Adobe Target
- 客户端库和核心组件
- 在AEM Sites中复制体验片段时重复的目标选件ID
recommendation-more-help
experience-cloud-kcs-help-kbarticles