Invalidierung des Dispatcher-Cache für aktualisierte /etc.clientlibs-Ressourcen in AEM as a Cloud Service
In diesem Artikel wird erläutert, wie Sie sicherstellen können, dass aktualisierte statische Ressourcen unter /etc.clientlibs nach der Bereitstellung in Adobe Experience Manager as a Cloud Service bereitgestellt werden, indem Sie Dispatcher-Cache-Aktionen konfigurieren und Cache-Busting-Techniken verwenden.
Beschreibung description
Umgebung
Adobe Experience Manager as a Cloud Service (AEMaaCS) (alle Versionen)
Symptome
- Aktualisierte statische Ressourcen, z. B. JavaScript-Dateien, unter
/etc.clientlibswerden nicht sofort nach der Bereitstellung angezeigt. - Browser, Dispatcher oder das CDN liefern weiterhin frühere Versionen der Dateien.
Ursache
Dispatcher- und CDN-Caches behalten statische Ressourcen mit langlebigen Cache-Headern bei, es sei denn, diese werden ungültig gemacht oder geleert. Cloud Manager-Bereitstellungen löschen diese Caches nicht automatisch für /etc.clientlibs, es sei denn, Sie konfigurieren Cache-Aktionen. Um Aktualisierungen sofort zu propagieren, verwenden Sie URL-basiertes Cache-Busting.
Lösung resolution
Führen Sie zur Behebung des Problems folgende Schritte aus:
-
Konfigurieren von Dispatcher-Cache-Aktionen in der Cloud Manager-Pipeline:
-
Bearbeiten Sie in Cloud Manager Ihre Bereitstellungs-Pipeline.
-
Gehen Sie zum Abschnitt Dispatcher-Konfiguration und klicken Sie auf Konfigurieren.
-
Fügen Sie eine Cache-Aktion mit den folgenden Einstellungen hinzu:
- path:
/etc.clientlibs/<your-project>/clientlibs/<your-clientlib>/* - Typ: Wählen Sie Invalidieren, um den zwischengespeicherten Inhalt als veraltet zu markieren, oder Leeren, um ihn zu löschen.
- path:
-
Wählen Sie Pfad hinzufügen, Anwenden und speichern Sie dann die Pipeline-Konfiguration.
-
Führen Sie die Pipeline aus, um die angegebenen Pfade zu invalidieren oder zu leeren.
-
-
URL-basiertes Cache-Busting für statische Ressourcen verwenden:
- Verwenden Sie beim Aktualisieren von statischen JavaScript- oder CSS-Dateien versionierte Dateinamen wie
swiper-bundle-v14.min.js. - Sie können auch einen Abfrageparameter anhängen, z. B.
swiper-bundle.min.js?v=20240819. - Durch das Ändern der URL wird sichergestellt, dass Dispatcher und das CDN die aktualisierte Datei als neue Ressource behandeln.
- Verwenden Sie beim Aktualisieren von statischen JavaScript- oder CSS-Dateien versionierte Dateinamen wie
-
Überprüfen Sie die
Cache-Control:- Wenn Sie langlebige TTLs wie
max-age=31536000, immutableverwenden, versionieren Sie die Ressourcen-URLs. - Wenn Sie keine URLs versionieren, verwenden Sie kürzere TTLs und entfernen Sie
immutableaus der Kopfzeile.
- Wenn Sie langlebige TTLs wie
-
Bereitstellen von Client-Bibliotheken über den Proxy:
- Bereitstellen von JavaScript und CSS über AEM-Client-Bibliotheken mit
allowProxy=true. - Vermeiden Sie hartcodierte Roh-URLs wie
/etc.clientlibs/.../resources/*.js.
- Bereitstellen von JavaScript und CSS über AEM-Client-Bibliotheken mit
-
Überprüfen Sie die Aktualisierung:
- Nachdem die Pipeline-Ausführung abgeschlossen ist, greifen Sie auf die aktualisierte Ressourcen-URL zu.
- Vergewissern Sie sich, dass die Ressource die neuesten Änderungen enthält.
- Überprüfen Sie die Antwort-Header, um das erwartete Caching-Verhalten zu überprüfen.