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.clientlibsn’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 :
-
Configurez les actions de cache Dispatcher dans le pipeline Cloud Manager :
-
Dans Cloud Manager, modifiez votre pipeline de déploiement.
-
Accédez à la section Configuration de Dispatcher, puis sélectionnez Configurer.
-
Ajoutez une action de mise en cache avec les paramètres suivants :
- Chemin:
/etc.clientlibs/<your-project>/clientlibs/<your-clientlib>/* - Type : sélectionnez Invalider pour marquer le contenu mis en cache comme périmé ou Vider pour le supprimer.
- Chemin:
-
Sélectionnez Ajouter un chemin, Appliquer, puis enregistrez la configuration du pipeline.
-
Exécutez le pipeline pour invalider ou vider les chemins spécifiés.
-
-
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.
- Lorsque vous mettez à jour des fichiers JavaScript ou CSS statiques, utilisez des noms de fichier avec version, tels que
-
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
immutablede l’en-tête.
- Si vous utilisez des TTL de longue durée, telles que
-
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.
- Utilisez JavaScript et CSS par le biais des bibliothèques clientes AEM avec
-
Vérifiez la mise à jour :
- Une fois l’exécution du pipeline terminée, accédez à l’URL de ressource mise à jour.
- Vérifiez que la ressource contient les dernières modifications.
- Examinez les en-têtes de réponse pour vérifier le comportement de mise en cache attendu.