Désactivation de la mise en cache du réseau CDN

Découvrez comment désactiver la mise en cache des réponses HTTP dans le réseau CDN d’AEM as a Cloud Service. La mise en cache des réponses est contrôlée par par les en-têtes de cache de réponse HTTP Cache-Control, Surrogate-Control ou Expires.

Ces en-têtes de cache sont généralement définis dans les configurations vhost du Dispatcher d’AEM à l’aide de mod_headers, mais peuvent également être définis dans du code Java™ personnalisé s’exécutant dans l’instance de publication AEM directement.

Comportement de mise en cache par défaut

Examinez le comportement de mise en cache par défaut pour l’instance de publication et de création AEM lors du déploiement d’un projet AEM basé sur l’archétype de projet AEM.

Désactiver la mise en cache

La désactivation de la mise en cache peut avoir un impact négatif sur les performances de votre instance AEM as a Cloud Service. Faites donc preuve de prudence lorsque vous désactivez le comportement de mise en cache par défaut.

Cependant, il existe certains scénarios dans lesquels vous pouvez désactiver la mise en cache, par exemple :

  • Vous développez une nouvelle fonctionnalité et vous voulez voir les changements immédiatement.
  • Le contenu est sécurisé (destiné uniquement aux personnes authentifiées) ou dynamique (panier, informations sur la commande) et ne doit pas être mis en cache.

Pour désactiver la mise en cache, vous pouvez mettre à jour les en-têtes de cache de deux façons.

  1. Configuration vhost de Dispatcher : disponible uniquement pour l’instance de publication AEM.
  2. Code Java™ personnalisé : disponible pour les instances de publication et de création AEM.

Examinons chacune de ces options.

Configuration vhost du Dispatcher

Cette option est l’approche recommandée pour désactiver la mise en cache, mais elle n’est disponible que pour l’instance de publication AEM. Pour mettre à jour les en-têtes de cache, utilisez le module mod_headers et la directive <LocationMatch> dans le fichier vhost du serveur Apache HTTP. La syntaxe générale se présente comme suit :

<LocationMatch "$URL$ || $URL_REGEX$">
    # Removes the response header of this name, if it exists. If there are multiple headers of the same name, all will be removed.
    Header unset Cache-Control
    Header unset Expires

    # Instructs the CDN to not cache the response.
    Header set Cache-Control "private"
</LocationMatch>

Exemple

Pour désactiver la mise en cache du réseau CDN des types de contenu CSS à des fins de dépannage, procédez comme suit.

Notez que, pour contourner le cache CSS existant, une modification du fichier CSS est nécessaire pour générer une nouvelle clé de cache pour le fichier CSS.

  1. Dans votre projet AEM, recherchez le fichier vhost souhaité à partir du répertoire dispatcher/src/conf.d/available_vhosts.

  2. Mettez à jour le fichier vhost (par exemple, wknd.vhost) comme suit :

    code language-none
    <LocationMatch "^/etc.clientlibs/.*\.(css)$">
        # Removes the response header of this name, if it exists. If there are multiple headers of the same name, all will be removed.
        Header unset Cache-Control
        Header unset Expires
    
        # Instructs the CDN to not cache the response.
        Header set Cache-Control "private"
    </LocationMatch>
    

    Les fichiers vhost dans le répertoire dispatcher/src/conf.d/enabled_vhosts sont des liens symboliques vers des fichiers dans le répertoire dispatcher/src/conf.d/available_vhosts, veillez donc à créer des liens symboliques s’ils ne sont pas présents.

  3. Déployez les modifications vhost dans l’environnement AEM as a Cloud Service souhaité à l’aide de Cloud Manager – Pipeline de configuration de niveau web ou des Commandes du RDE.

Code Java™ personnalisé

Cette option est disponible pour les instances de publication et de création AEM. Pour mettre à jour les en-têtes de cache, utilisez l’objet SlingHttpServletResponse dans le code Java™ personnalisé (servlet Sling, filtre de servlet Sling). La syntaxe générale se présente comme suit :

response.setHeader("Cache-Control", "private");
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69