Annullare la validità della cache di Dispatcher per le risorse /etc.clientlibs aggiornate in AEM as a Cloud Service

In questo articolo viene illustrato come garantire che le risorse statiche aggiornate in /etc.clientlibs vengano servite dopo la distribuzione in Adobe Experience Manager as a Cloud Service configurando le azioni della cache di Dispatcher e utilizzando tecniche di busting della cache.

Descrizione description

Ambiente

Adobe Experience Manager as a Cloud Service (AEMaaCS) (tutte le versioni)

Sintomi

  • Le risorse statiche aggiornate, ad esempio i file JavaScript, in /etc.clientlibs non vengono visualizzate subito dopo la distribuzione.
  • Browser, Dispatcher o CDN continuano a distribuire le versioni precedenti dei file.

Causa

Le cache Dispatcher e CDN conservano le risorse statiche con intestazioni cache di lunga durata, a meno che non vengano invalidate o svuotate. Le distribuzioni di Cloud Manager non cancellano automaticamente queste cache per /etc.clientlibs a meno che non si configurino le azioni cache. Per propagare immediatamente gli aggiornamenti, utilizza il busting della cache basato su URL.

Risoluzione resolution

Per risolvere il problema, segui la procedura riportata di seguito:

  1. Configurare le azioni della cache di Dispatcher nella pipeline di Cloud Manager:

    1. In Cloud Manager, modifica la pipeline di distribuzione.

    2. Andare alla sezione Configurazione Dispatcher e quindi selezionare Configura.

    3. Aggiungi un’azione cache con le impostazioni seguenti:

      1. Percorso: /etc.clientlibs/<your-project>/clientlibs/<your-clientlib>/*
      2. Tipo: Seleziona Invalida per contrassegnare il contenuto nella cache come non aggiornato o Svuota per eliminarlo.
    4. Selezionare Aggiungi percorso, Applica, quindi salvare la configurazione della pipeline.

    5. Esegui la pipeline per invalidare o svuotare i percorsi specificati.

  2. Utilizza il busting della cache basato su URL per le risorse statiche:

    • Quando si aggiornano file JavaScript o CSS statici, utilizzare i nomi dei file con versione, ad esempio swiper-bundle-v14.min.js.
    • In alternativa, aggiungere un parametro di query, ad esempio swiper-bundle.min.js?v=20240819.
    • La modifica dell’URL garantisce che Dispatcher e CDN trattino il file aggiornato come una nuova risorsa.
  3. Rivedi le intestazioni Cache-Control:

    • Se si utilizzano TTL di lunga durata, ad esempio max-age=31536000, immutable, creare una versione degli URL delle risorse.
    • Se non esegui la versione degli URL, utilizza TTL più brevi e rimuovi immutable dall’intestazione.
  4. Distribuisci le librerie client tramite il proxy:

    • Distribuisci JavaScript e CSS tramite le librerie client AEM con allowProxy=true.
    • Evitare di utilizzare URL non elaborati a codifica fissa come /etc.clientlibs/.../resources/*.js.
  5. Verifica l’aggiornamento:

    1. Al termine dell’esecuzione della pipeline, accedi all’URL della risorsa aggiornato.
    2. Verifica che la risorsa contenga le modifiche più recenti.
    3. Esamina le intestazioni di risposta per verificare il comportamento di caching previsto.
recommendation-more-help
experience-cloud-kcs-help-kbarticles