Solution AEM pour la mise en cache de la personnalisation ESI avec des composants rendus côté client
Le contenu personnalisé peut ne pas se comporter comme prévu lorsque les inclusions côté Edge (ESI) sont utilisées avec des composants rendus sur le client au lieu d’être renvoyés en tant que fragments d’HTML rendus par le serveur. L’alignement de la mise en œuvre avec les points d’entrée de fragment rendus par le serveur pour les cas d’utilisation ESI ou l’utilisation d’une approche côté client pour les composants qui restent rendus par le client peut aider à résoudre le problème.
Description description
Environnement
Adobe Experience Manager as a Cloud Service
Problème/Symptômes
- Après l’implémentation d’ESI pour le contenu personnalisé sur les pages de publication Adobe Experience Manager as a Cloud Service, les utilisateurs peuvent voir un comportement de mise en cache inattendu.
- Si un utilisateur anonyme réchauffe le cache d’une page publique, un utilisateur authentifié peut voir ultérieurement la version anonyme d’un composant personnalisé, ou l’inverse peut se produire.
- Les composants concernés peuvent inclure des éléments tels que des en-têtes, des zones d’abonnement ou d’autres éléments de page qui devraient varier en fonction du contexte utilisateur.
- Aucun message d’erreur clair ne peut apparaître dans les journaux ou dans le navigateur, même si la sortie personnalisée ne s’affiche pas comme prévu.
- Vous pouvez confirmer le problème en comparant la même page dans les sessions anonymes et authentifiées après l’échauffement du cache et en vérifiant si le composant affecté est renvoyé en tant qu’HTML générée par le serveur dans la réponse d’origine ou s’il est généré ultérieurement par le JavaScript côté client.
Résolution resolution
Essayez les étapes suivantes pour résoudre le problème :
-
Vérifiez si le composant utilisé pour la personnalisation est renvoyé à partir de l’origine en tant que fragment d’HTML rendu par le serveur ou rendu ultérieurement dans le navigateur par JavaScript.
-
Si vous avez besoin d’ESI pour assembler du contenu personnalisé, exposez le composant approprié en tant que fragment d’HTML rendu par le serveur pouvant être inclus séparément. Mettez à jour votre configuration d’inclusion dynamique ESI ou Apache Sling afin qu’elle référence le point d’entrée de fragment rendu par le serveur.
-
Si un composant doit rester rendu côté client, utilisez un modèle de personnalisation côté client pour ce composant au lieu de vous fier à ESI pour l’assembler.
-
Validez la mise en œuvre mise à jour.
- Testez la page dans les sessions anonymes et authentifiées.
- Vérifiez que chaque session reçoit la version attendue du composant concerné après l’échauffement du cache.
- Vérifiez que la réponse d’origine contient la sortie de fragment attendue pour les composants destinés à être gérés par ESI.