Show Menu
TÓPICOS×

Expiração de objetos estáticos

Objetos estáticos (por exemplo, ícones) não são alterados. Portanto, o sistema deve ser configurado para que não expire (por um período de tempo razoável) e, assim, reduza o tráfego desnecessário.
Isso tem o seguinte impacto:
  • Descarrega solicitações da infraestrutura do servidor.
  • Aumenta o desempenho do carregamento da página, à medida que o navegador armazena objetos em cache no cache do navegador.
As expirações são especificadas pelo padrão HTTP referente à "expiração" dos arquivos (consulte, por exemplo, o capítulo 14.21 da 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 nenhuma verificação de status no servidor de origem.
Essa configuração é completamente separada do Dispatcher (e não funcionará para ele).
A finalidade 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 parecer com uma das seguintes opções - dependendo do ambiente:
Você deve ter cuidado ao definir o período de tempo 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 eles expirem. Isso significa que eles não precisam ser solicitados 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 nos caches do cliente. 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 período razoável seria de 1 hora:
    <Location /content>
      ExpiresByType text/html "access plus 1 hour"
    </Location>
    
    
Depois de 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.