Le panneau de navigation supérieur ne se charge pas sur le storefront

Cet article fournit des solutions de configuration aux problèmes d’inclusion côté Edge (ESI) de Varnish, en raison desquels le contenu de certaines pages, généralement le panneau de navigation supérieur, n’est pas affiché sur le storefront si le vernis est utilisé pour la mise en cache.

Description description

Environnement

  • Adobe Commerce 2.X.X
  • Toutes les versions de vernis

Problème

Conditions préalables :

Installez et configurez Varnish pour votre boutique Adobe Commerce.

Procédure à suivre :

  1. Allez à la vitrine.
  2. Parcourez les pages du magasin.

Résultats attendus :

Tout le contenu et tous les blocs de page se chargent correctement.

Résultats réels :

Notez que certains blocs de contenu ne se chargent pas, comme le panneau de navigation supérieur avec les catégories. Un espace vide s’affiche à la place.

Cause

Les raisons possibles du problème sont les suivantes :

  • Les balises d’inclusion ESI sont générées avec le protocole d’accès HTTPS, tandis que Varnish ne fonctionne qu’avec HTTP.
  • Le vernis ne traite pas les ESI dans JSON.
  • Les en-têtes de réponse sont trop volumineux pour le vernis ; il ne peut pas les traiter.

Résolution resolution

Pour résoudre les problèmes, vous devez effectuer une configuration de vernis supplémentaire et redémarrer le vernis.

  1. En tant qu’utilisateur disposant de droits d’root, ouvrez votre fichier de configuration Vanish dans un éditeur de texte. Pour plus d’informations sur l’emplacement de ce fichier pour différents systèmes d’exploitation​ consultez la section ​Modifier la configuration du système Varnish de la documentation destinée aux développeurs.

  2. Dans le DAEMON_OPTS variable, ajoutez -p feature=+esi_ignore_https, -p feature=+esi_ignore_other_elements, -p feature=+esi_disable_xml_check. Voici à quoi cela ressemblerait :

    code language-none
    DAEMON_OPTS="-a :6081 \    -p feature=+esi_ignore_other_elements \    -p feature=+esi_disable_xml_check \    -p feature=+esi_ignore_https \    -T localhost:6082 \    -f /etc/varnish/default.vcl \    -S /etc/varnish/secret \    -s malloc,256m"
    
  3. Enregistrez vos modifications et quittez l’éditeur de texte.

  4. Dans le fichier de configuration VCL, augmentez les en-têtes de réponse en augmentant les valeurs de ces paramètres : http_resp_hdr_len, http_resp_size, workspace_backend. Assurez-vous que les deux dernières d’entre elles ont des valeurs similaires.

  5. Lorsque vous modifiez ce paramètre, vous devez exécuter service varnish restart pour que les modifications soient prises en compte.

Lecture connexe

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f