Como desativar o armazenamento em cache do CDN

Saiba como desativar o armazenamento em cache de respostas HTTP no CDN da AEM as a Cloud Service. O cache de respostas é controlado por Cache-Control, Surrogate-Control ou Expires cabeçalhos de cache de resposta HTTP.

Normalmente, esses cabeçalhos de cache são definidos em configurações de vhost do AEM Dispatcher usando mod_headers, mas também podem ser definidos no código Java™ personalizado em execução no próprio Publish AEM.

Comportamento de cache padrão

Revise o comportamento padrão de armazenamento em cache do AEM Publish e do Author quando um projeto do baseado no Arquétipo de projeto do AEM AEM for implantado.

Desativar armazenamento em cache

A desativação do armazenamento em cache pode ter um impacto negativo no desempenho da sua instância do AEM as a Cloud Service, portanto, tenha cuidado ao desativar o comportamento padrão de armazenamento em cache.

No entanto, há alguns cenários em que você pode desejar desativar o armazenamento em cache, como:

  • Desenvolver um novo recurso e desejar ver as alterações imediatamente.
  • O conteúdo é seguro (destinado apenas a usuários autenticados) ou dinâmico (carrinho de compras, detalhes do pedido) e não deve ser armazenado em cache.

Para desativar o armazenamento em cache, você pode atualizar os cabeçalhos de cache de duas maneiras.

  1. Configuração do Dispatcher vhost: disponível somente para AEM Publish.
  2. Código Java™ personalizado: disponível para AEM Publish e Author.

Vamos analisar cada uma dessas opções.

Configuração do Dispatcher vhost

Essa opção é a abordagem recomendada para desativar o armazenamento em cache, mas só está disponível para o AEM Publish. Para atualizar os cabeçalhos de cache, use o módulo mod_headers e a diretiva <LocationMatch> no arquivo vhost do Apache HTTP Server. A sintaxe geral é a seguinte:

<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>

Exemplo

Para desabilitar o cache CDN dos tipos de conteúdo CSS para alguns fins de solução de problemas, siga estas etapas.

Observe que, para ignorar o cache CSS existente, uma alteração no arquivo CSS é necessária para gerar uma nova chave de cache para o arquivo CSS.

  1. No projeto AEM, localize o arquivo vhsot desejado do diretório dispatcher/src/conf.d/available_vhosts.

  2. Atualize o arquivo vhost (por exemplo, wknd.vhost) da seguinte maneira:

    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>
    

    Os arquivos vhost no diretório dispatcher/src/conf.d/enabled_vhosts são symlinks para os arquivos no diretório dispatcher/src/conf.d/available_vhosts. Portanto, se não houver, crie symlinks.

  3. Implante as alterações do vhost no ambiente do AEM as a Cloud Service desejado usando o Pipeline de Configuração da Camada da Web ou os Comandos RDE do Cloud Manager.

Código Java™ personalizado

Essa opção está disponível para o AEM Publish e para o Author. Para atualizar os cabeçalhos de cache, use o objeto SlingHttpServletResponse no código Java™ personalizado (servlet Sling, filtro de servlet Sling). A sintaxe geral é a seguinte:

response.setHeader("Cache-Control", "private");
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69