Invalidation du cache Dispatcher pour les ressources /etc.clientlibs mises à jour dans AEM as a Cloud Service

Cet article explique comment s’assurer que les ressources statiques mises à jour sous /etc.clientlibs sont diffusées après le déploiement dans Adobe Experience Manager as a Cloud Service en configurant les actions de cache de Dispatcher et en utilisant des techniques de contournement du cache.

Description description

Environnement

Adobe Experience Manager as a Cloud Service (AEMaaCS) (toutes les versions)

Symptômes

  • Les ressources statiques mises à jour, telles que les fichiers JavaScript, sous /etc.clientlibs n’apparaissent pas immédiatement après le déploiement.
  • Les navigateurs, Dispatcher ou le réseau CDN continuent à servir les versions précédentes des fichiers.

Cause

Les caches de Dispatcher et de réseau CDN conservent des ressources statiques avec des en-têtes de cache de longue durée, sauf si vous les invalidez ou les videz. Les déploiements de Cloud Manager n’effacent pas automatiquement ces caches pour /etc.clientlibs, sauf si vous configurez des actions de mise en cache. Pour propager les mises à jour immédiatement, utilisez le contournement du cache par URL.

Résolution resolution

Pour résoudre ce problème, procédez comme suit :

  1. Configurez les actions de cache Dispatcher dans le pipeline Cloud Manager :

    1. Dans Cloud Manager, modifiez votre pipeline de déploiement.

    2. Accédez à la section Configuration de Dispatcher, puis sélectionnez Configurer.

    3. Ajoutez une action de mise en cache avec les paramètres suivants :

      1. Chemin: /etc.clientlibs/<your-project>/clientlibs/<your-clientlib>/*
      2. Type : sélectionnez Invalider pour marquer le contenu mis en cache comme périmé ou Vider pour le supprimer.
    4. Sélectionnez Ajouter un chemin, Appliquer, puis enregistrez la configuration du pipeline.

    5. Exécutez le pipeline pour invalider ou vider les chemins spécifiés.

  2. Utilisez le démantèlement de cache par URL pour les ressources statiques :

    • Lorsque vous mettez à jour des fichiers JavaScript ou CSS statiques, utilisez des noms de fichier avec version, tels que swiper-bundle-v14.min.js.
    • Vous pouvez également ajouter un paramètre de requête, tel que swiper-bundle.min.js?v=20240819.
    • La modification de l’URL garantit que Dispatcher et le réseau CDN traitent le fichier mis à jour comme une nouvelle ressource.
  3. Consultez les en-têtes Cache-Control :

    • Si vous utilisez des TTL de longue durée, telles que max-age=31536000, immutable, gérez la version des URL des ressources.
    • Si vous ne modifiez pas les URL, utilisez des TTL plus courtes et supprimez les immutable de l’en-tête.
  4. Utilisez les bibliothèques clientes par le biais du proxy :

    • Utilisez JavaScript et CSS par le biais des bibliothèques clientes AEM avec allowProxy=true.
    • Évitez les URL brutes de codage en dur telles que les /etc.clientlibs/.../resources/*.js.
  5. Vérifiez la mise à jour :

    1. Une fois l’exécution du pipeline terminée, accédez à l’URL de ressource mise à jour.
    2. Vérifiez que la ressource contient les dernières modifications.
    3. Examinez les en-têtes de réponse pour vérifier le comportement de mise en cache attendu.
recommendation-more-help
experience-cloud-kcs-help-kbarticles