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.clientlibs werden 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:

  1. Konfigurieren von Dispatcher-Cache-Aktionen in der Cloud Manager-Pipeline:

    1. Bearbeiten Sie in Cloud Manager Ihre Bereitstellungs-Pipeline.

    2. Gehen Sie zum Abschnitt Dispatcher-Konfiguration und klicken Sie auf Konfigurieren.

    3. Fügen Sie eine Cache-Aktion mit den folgenden Einstellungen hinzu:

      1. path: /etc.clientlibs/<your-project>/clientlibs/<your-clientlib>/*
      2. Typ: Wählen Sie Invalidieren, um den zwischengespeicherten Inhalt als veraltet zu markieren, oder Leeren, um ihn zu löschen.
    4. Wählen Sie Pfad hinzufügen, Anwenden und speichern Sie dann die Pipeline-Konfiguration.

    5. Führen Sie die Pipeline aus, um die angegebenen Pfade zu invalidieren oder zu leeren.

  2. 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.
  3. Überprüfen Sie die Cache-Control:

    • Wenn Sie langlebige TTLs wie max-age=31536000, immutable verwenden, versionieren Sie die Ressourcen-URLs.
    • Wenn Sie keine URLs versionieren, verwenden Sie kürzere TTLs und entfernen Sie immutable aus der Kopfzeile.
  4. 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.
  5. Überprüfen Sie die Aktualisierung:

    1. Nachdem die Pipeline-Ausführung abgeschlossen ist, greifen Sie auf die aktualisierte Ressourcen-URL zu.
    2. Vergewissern Sie sich, dass die Ressource die neuesten Änderungen enthält.
    3. Überprüfen Sie die Antwort-Header, um das erwartete Caching-Verhalten zu überprüfen.
recommendation-more-help
experience-cloud-kcs-help-kbarticles