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.clientlibsnon 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:
-
Configurare le azioni della cache di Dispatcher nella pipeline di Cloud Manager:
-
In Cloud Manager, modifica la pipeline di distribuzione.
-
Andare alla sezione Configurazione Dispatcher e quindi selezionare Configura.
-
Aggiungi un’azione cache con le impostazioni seguenti:
- Percorso:
/etc.clientlibs/<your-project>/clientlibs/<your-clientlib>/* - Tipo: Seleziona Invalida per contrassegnare il contenuto nella cache come non aggiornato o Svuota per eliminarlo.
- Percorso:
-
Selezionare Aggiungi percorso, Applica, quindi salvare la configurazione della pipeline.
-
Esegui la pipeline per invalidare o svuotare i percorsi specificati.
-
-
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.
- Quando si aggiornano file JavaScript o CSS statici, utilizzare i nomi dei file con versione, ad esempio
-
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
immutabledall’intestazione.
- Se si utilizzano TTL di lunga durata, ad esempio
-
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.
- Distribuisci JavaScript e CSS tramite le librerie client AEM con
-
Verifica l’aggiornamento:
- Al termine dell’esecuzione della pipeline, accedi all’URL della risorsa aggiornato.
- Verifica che la risorsa contenga le modifiche più recenti.
- Esamina le intestazioni di risposta per verificare il comportamento di caching previsto.