Expiração de objetos estáticos

Os objetos estáticos (por exemplo, ícones) não são alterados. Por conseguinte, o sistema deve ser configurado de modo a não expirar (por um período de tempo razoável), reduzindo assim o tráfego desnecessário.

Isso tem o seguinte impacto:

  • Descarrega solicitações da infraestrutura do servidor.
  • Aumenta o desempenho do carregamento de página, à medida que o navegador armazena em cache objetos no cache do navegador.

As expirações são especificadas pelo padrão HTTP em relação à "expiração" dos arquivos (consulte, por exemplo, o capítulo 14.21 de RFC 2616 " Hypertext Transfer Protocol - HTTP 1.1"). Esse padrão usa o cabeçalho para permitir que os clientes armazenem objetos em cache até que sejam considerados obsoletos; esses objetos são armazenados em cache pelo tempo especificado sem que seja feita qualquer verificação de status no servidor de origem.

OBSERVAÇÃO

Essa configuração é completamente separada do Dispatcher (e não funcionará para ele).

O objetivo do Dispatcher é armazenar dados em cache na frente do AEM.

Todos os arquivos, que não são dinâmicos e que não mudam ao longo do tempo, podem e devem ser armazenados em cache. A configuração do servidor HTTPD do Apache pode ser semelhante a um dos seguintes - dependendo do ambiente:

CUIDADO

Você deve tomar cuidado ao definir o período durante o qual um objeto é considerado atualizado. Como não há verificação até que o período de tempo especificado tenha expirado, o cliente pode acabar apresentando o conteúdo antigo do cache.

  1. Para uma instância de autor:

    LoadModule expires_module modules/mod_expires.so
    <Location /libs>
      ExpiresByType text/css "access plus 1 month"
      ExpiresByType text/javascript "access plus 1 month"
      ExpiresByType image/png "access plus 1 month"
      ExpiresByType image/gif "access plus 1 month"
    </Location>
    

    Isso permite que o cache intermediário (por exemplo, o cache do navegador) armazene arquivos CSS, Javascript, PNG e GIF por até um mês, até que expirem. Isso significa que elas não precisam ser solicitadas do AEM ou do servidor da Web, mas podem permanecer no cache do navegador.

    Outras seções do site não devem ser armazenadas em cache em uma instância do autor, pois estão sujeitas a alterações a qualquer momento.

  2. Para uma instância de publicação:

    LoadModule expires_module modules/mod_expires.so
    <Location /content>
      ExpiresByType text/css "access plus 1 day"
      ExpiresByType text/javascript "access plus 1 day"
      ExpiresByType image/png "access plus 1 day"
      ExpiresByType image/gif "access plus 1 day"
    </Location>
    <Location /etc/designs>
      ExpiresByType text/css "access plus 1 day"
      ExpiresByType text/javascript "access plus 1 day"
      ExpiresByType image/png "access plus 1 day"
      ExpiresByType image/gif "access plus 1 day"
    </Location>
    

    Isso permite que o cache intermediário (por exemplo, o cache do navegador) armazene arquivos CSS, Javascript, PNG e GIF por até um dia em caches de clientes. Embora este exemplo ilustre as configurações globais para tudo abaixo /content e /etc/designs, você deve torná-lo mais granular.

    Dependendo da frequência com que seu site é atualizado, você também pode considerar armazenar páginas HTML em cache. Um prazo razoável seria de 1 hora:

    <Location /content>
      ExpiresByType text/html "access plus 1 hour"
    </Location>
    

Após configurar os objetos estáticos, verifique request.log, ao selecionar as páginas que contêm esses objetos, para confirmar que nenhuma solicitação (desnecessária) está sendo feita para objetos estáticos.

Nesta página

Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now
Adobe Maker Awards Banner

Time to shine!

Apply now for the 2021 Adobe Experience Maker Awards.

Apply now