Solución de AEM para el almacenamiento en caché de personalización de ESI con componentes procesados del lado del cliente
Es posible que el contenido personalizado no se comporte como se espera cuando se utiliza Edge Side Includes (ESI) con componentes que se procesan en el cliente en lugar de devolverse como fragmentos de HTML procesados por el servidor. Alinear la implementación con los extremos de fragmento procesados por el servidor para casos de uso de ESI, o utilizar un enfoque del lado del cliente para componentes que siguen procesados por el cliente, puede ayudar a resolver el problema.
Descripción description
Entorno
Adobe Experience Manager as a Cloud Service
Problema/Síntomas
- Después de implementar ESI para el contenido personalizado en páginas de publicación de Adobe Experience Manager as a Cloud Service, es posible que los usuarios vean un comportamiento de almacenamiento en caché inesperado.
- Si un usuario anónimo calienta la caché de una página pública, un usuario autenticado puede ver posteriormente la versión anónima de un componente personalizado o puede ocurrir lo contrario.
- Los componentes afectados pueden incluir elementos como encabezados, áreas de suscripción u otros elementos de página que se espera que varíen según el contexto del usuario.
- Es posible que no aparezca ningún mensaje de error claro en los registros ni en el explorador, aunque la salida personalizada no se represente según lo esperado.
- Puede confirmar el problema comparando la misma página en sesiones anónimas y autenticadas después del calentamiento de la caché y comprobando si el componente afectado se devuelve como HTML procesado por el servidor en la respuesta de origen o procesado posteriormente por JavaScript del lado del cliente.
Resolución resolution
Pruebe los siguientes pasos para resolver el problema:
-
Compruebe si el componente utilizado para la personalización se devuelve desde el origen como un fragmento de HTML procesado por el servidor o JavaScript lo procesa más adelante en el explorador.
-
Si necesita ESI para montar contenido personalizado, exponga el componente correspondiente como un fragmento de HTML procesado por el servidor que se puede incluir por separado. Actualice la configuración de ESI o Apache Sling Dynamic Include para que haga referencia al extremo de fragmento procesado por el servidor.
-
Si un componente debe permanecer procesado en el lado del cliente, utilice un patrón de personalización del lado del cliente para ese componente en lugar de depender de ESI para ensamblarlo.
-
Valide la implementación actualizada.
- Pruebe la página en sesiones anónimas y autenticadas.
- Confirme que cada sesión recibe la versión esperada del componente afectado después del calentamiento de la caché.
- Compruebe que la respuesta de origen contiene el resultado de fragmento esperado para los componentes que ESI va a gestionar.