Como liberar recursos mapeados da URL a partir do dispatcher

Pergunta

O CQ5 fornece funcionalidade de mapeamento de URL por meio do Apache Sling. Um dos requisitos mais importantes é permitir URLs otimizadas para SEO.
Em conjunto com o armazenamento em cache do Dispatcher, há uma incompatibilidade entre os recursos html armazenados em cache anteriormente e a solicitação de liberação do Dispatcher. Além disso, se statfileslevel está configurado para um valor > 0, a localização dos arquivos .stat usados para determinar a validade do cache não correspondem aos arquivos realmente armazenados em cache.

Exemplo:

  • solicitação http://www.mydomain.com/geometrixx/en/company.html
  • armazenado em cache pelo Dispatcher em <docroot>/geometrixx/en/company.html
  • /content/geometrixx/en/company é replicado da instância de autoria
  • O agente de limpeza do dispatcher está solicitando que /content/geometrixx/en/company seja liberado do cache do Dispatcher
  • O módulo do Dispatcher tenta liberar recursos em <docroot>/content/geometrixx/en/company.* e não encontra nada -> cache não liberado

Resposta, Resolução

O problema é que a solicitação de liberação do Dispatcher envia o caminho absoluto de um recurso a ser liberado do cache do Dispatcher como resultado de uma replicação. Para resolver essa incompatibilidade, é recomendável reconfigurar URLs mapeadas de volta ao seu formato de caminho absoluto original no nível do servidor da Web, o que faz com que o módulo Dispatcher leia, grave e libere entradas de cache consistentemente no nível do sistema de arquivos. Isto também se aplica para leitura e gravação de arquivos .stat.

Se o Apache HTTP Server for usado como servidor da Web, mod_rewrite fornece toda a funcionalidade necessária para realizar a regravação.

A seguir, um exemplo de como configurar a regravação com o módulo mod_rewrite do Apache. O exemplo é baseado em:

  • solicitações de mapeamento recebidas para o domínio www.geometrixx.de para /content/geometrixx/de
<VirtualHost *:80> ServerName www.geometrixx.de RewriteEngine On RewriteRule ^/(.*\.html)$ /content/geometrixx/de/$1 [PT] <Directory /> <IfModule disp_apache2.c> SetHandler dispatcher-handler </IfModule> Options FollowSymLinks AllowOverride None </Directory> </VirtualHost> 

Aplica-se a

CQ5.2.x, CQ5.3

Logotipo da Adobe

Fazer logon em sua conta