Disabilitare il caching CDN
Scopri come disattivare la memorizzazione nella cache delle risposte HTTP nella rete CDN di AEM as a Cloud Service. La memorizzazione nella cache delle risposte è controllata da Cache-Control
, Surrogate-Control
o Expires
intestazioni cache di risposta HTTP.
Queste intestazioni di cache sono in genere impostate nelle configurazioni vhost di Dispatcher AEM utilizzando mod_headers
, ma possono anche essere impostate nel codice Java™ personalizzato in esecuzione nello stesso Publish AEM.
Comportamento di caching predefinito
Rivedi il comportamento di caching predefinito per Publish AEM e Author quando viene distribuito un progetto AEM basato su AEM Project Archetype.
Disattiva caching
La disattivazione della memorizzazione nella cache può avere un impatto negativo sulle prestazioni dell’istanza di AEM as a Cloud Service, pertanto è necessario prestare attenzione quando si disattiva il comportamento di memorizzazione nella cache predefinito.
Tuttavia, in alcuni casi può essere utile disattivare la memorizzazione in cache, ad esempio:
- Lo sviluppo di una nuova funzione e desidera vedere immediatamente le modifiche.
- Il contenuto è sicuro (destinato solo agli utenti autenticati) o dinamico (carrello, dettagli ordine) e non deve essere memorizzato in cache.
Per disabilitare il caching, puoi aggiornare le intestazioni della cache in due modi.
- Configurazione vhost Dispatcher: disponibile solo per Publish AEM.
- Codice Java™ personalizzato: Disponibile per AEM Publish e Author.
Esaminiamo ognuna di queste opzioni.
Configurazione vhost Dispatcher
Questa opzione è l’approccio consigliato per disabilitare la memorizzazione in cache, ma è disponibile solo per AEM Publish. Per aggiornare le intestazioni della cache, utilizzare il modulo mod_headers
e la direttiva <LocationMatch>
nel file vhost del server HTTP Apache. La sintassi generale è la seguente:
<LocationMatch "$URL$ || $URL_REGEX$">
# Removes the response header of this name, if it exists. If there are multiple headers of the same name, all will be removed.
Header unset Cache-Control
Header unset Expires
# Instructs the CDN to not cache the response.
Header set Cache-Control "private"
</LocationMatch>
Esempio
Per disattivare la memorizzazione nella cache CDN dei tipi di contenuto CSS per alcune operazioni di risoluzione dei problemi, eseguire la procedura seguente.
Per ignorare la cache CSS esistente, è necessario modificare il file CSS per generare una nuova chiave cache per il file CSS.
-
Nel progetto AEM, individuare il file vhsot desiderato dalla directory
dispatcher/src/conf.d/available_vhosts
. -
Aggiornare il file vhost (ad esempio
wknd.vhost
) come segue:code language-none <LocationMatch "^/etc.clientlibs/.*\.(css)$"> # Removes the response header of this name, if it exists. If there are multiple headers of the same name, all will be removed. Header unset Cache-Control Header unset Expires # Instructs the CDN to not cache the response. Header set Cache-Control "private" </LocationMatch>
I file vhost nella directory
dispatcher/src/conf.d/enabled_vhosts
sono symlinks ai file nella directorydispatcher/src/conf.d/available_vhosts
. Assicurarsi quindi di creare symlink se non presenti. -
Distribuisci le modifiche vhost nell'ambiente AEM as a Cloud Service desiderato utilizzando Cloud Manager - Pipeline di configurazione a livello web o Comandi RDE.
Codice Java™ personalizzato
Questa opzione è disponibile sia per AEM Publish che per Author. Per aggiornare le intestazioni della cache, utilizzare l'oggetto SlingHttpServletResponse
nel codice Java™ personalizzato (servlet Sling, filtro servlet Sling). La sintassi generale è la seguente:
response.setHeader("Cache-Control", "private");