CDN in cache plaatsen uitschakelen
Leer hoe u het in cache plaatsen van HTTP-reacties in AEM as a Cloud Service CDN uitschakelt. Het in cache plaatsen van reacties wordt geregeld door Cache-Control
-, Surrogate-Control
- of Expires
HTTP-antwoordcache-headers.
Deze cacheheaders worden doorgaans ingesteld in AEM Dispatcher-hostconfiguraties met mod_headers
, maar kunnen ook worden ingesteld in aangepaste Java™-code die wordt uitgevoerd in AEM Publish zelf.
Standaardgedrag voor caching
Het in cache plaatsen van HTTP-reacties in de CDN van AEM as a Cloud Service wordt bestuurd door de volgende HTTP-antwoordheaders vanaf de oorsprong Cache-Control
, Surrogate-Control
of Expires
. Oorspronkelijke reacties die private
, no-cache
of no-store
in Cache-Control
bevatten, worden niet in de cache geplaatst.
Herzie het standaardcaching gedragvoor AEM publiceren en Auteur wanneer een project van de Archetype van het Project van AEM gebaseerd AEM wordt opgesteld.
Cache uitschakelen
Als u caching uitschakelt, kan dit negatieve gevolgen hebben voor de prestaties van uw AEM as a Cloud Service-instantie. Wees daarom voorzichtig bij het uitschakelen van het standaardcachegedrag.
Er zijn echter enkele scenario's waarin u caching kunt uitschakelen, zoals:
- Een nieuwe functie ontwikkelen en de wijzigingen direct bekijken.
- Inhoud is beveiligd (alleen bedoeld voor geverifieerde gebruikers) of dynamisch (winkelwagentje, bestelgegevens) en mag niet in de cache worden opgeslagen.
Als u caching wilt uitschakelen, kunt u de cachekoppen op twee manieren bijwerken.
- de gastheerconfiguratie van Dispatcher: slechts beschikbaar voor AEM publiceert.
- de code van Java™ van de Douane: Beschikbaar voor zowel de Publish als Auteur van AEM.
Laten we elk van deze opties bekijken.
Dispatcher-hostconfiguratie
Deze optie wordt aanbevolen voor het uitschakelen van caching, maar is alleen beschikbaar voor AEM Publish. Als u de cachekoppen wilt bijwerken, gebruikt u de instructies mod_headers
module en <LocationMatch>
in het hostbestand van Apache HTTP Server. De algemene syntaxis ziet er als volgt uit:
<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 Surrogate-Control
Header unset Expires
# Instructs the Browser and the CDN to not cache the response.
Header always set Cache-Control "private"
# Instructs only the CDN to not cache the response.
Header always set Surrogate-Control "private"
</LocationMatch>
Voorbeeld
Om CDN caching van de CSS inhoudstypes voor sommige het oplossen van problemendoeleinden onbruikbaar te maken, volg deze stappen.
Als u de bestaande CSS-cache wilt overslaan, moet u het CSS-bestand wijzigen om een nieuwe cachemoets voor het CSS-bestand te genereren.
-
Zoek in uw AEM-project het gewenste vhst-bestand in de map
dispatcher/src/conf.d/available_vhosts
. -
Werk het vhost-bestand (bijvoorbeeld
wknd.vhost
) als volgt bij: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 Browser and the CDN to not cache the response. Header always set Cache-Control "private" </LocationMatch>
De gastheerdossiers in
dispatcher/src/conf.d/enabled_vhosts
folder zijn symlinks aan de dossiers indispatcher/src/conf.d/available_vhosts
folder, zodat zorg ervoor om tot symlinks te leiden als niet aanwezig. -
Stel de vhost veranderingen in het gewenste milieu van AEM as a Cloud Service op gebruikend Cloud Manager - de Pijpleiding van Config van de Rij van het Webof RDE bevelen.
Aangepaste Java™-code
Deze optie is zowel beschikbaar voor publiceren in AEM als voor auteur. Gebruik het SlingHttpServletResponse
-object in de aangepaste Java™-code (Sling servlet, Sling servlet filter) om de cacheheaders bij te werken. De algemene syntaxis ziet er als volgt uit:
response.setHeader("Cache-Control", "private");