apache httpd mod_expires não funciona quando o deflate está ativado

1

Em uma instalação do Debian Jessie, eu instalei manualmente o wordpress e editei .htaccess , transformando mod_expires em:

ExpiresActive On
ExpiresDefault modification

No entanto, quando uso o Firefox Inspector para assistir ao tráfego de rede, descubro que todos os arquivos js e css retornam 200 OK com conteúdo compactado com gzip em vez de HTTP 304.

Então eu fiz um experimento.

  1. Eu criei um arquivo quase vazio (incompressível) chamado foobar.css e o procurei no firefox. Ele retornou 200 OK com dados descompactados na primeira vez e 304 Not Modified na segunda vez.
  2. Repeti o mesmo conteúdo várias vezes para criar um arquivo grande (compactável). Desta vez, o servidor devolveu 200 OK com dados comprimidos na primeira vez, na segunda vez, na terceira vez ... Sempre que devolver o mesmo conteúdo em vez do esperado 304 Not Modified .

Eu assisti /etc/apache2/mods-enabled/deflate.conf e descobri que text/css está desinflado por padrão:

...
AddOutputFilterByType DEFLATE text/css
...

Os dois módulos mod_expires e mod_deflate podem funcionar ao mesmo tempo? Como devo configurá-los?

Terrivelmente, lamento por inglês quebrado.

EDITAR: Eu encontrei uma solução alternativa aqui: link No entanto, é apenas uma solução alternativa. Eu acho que é realmente um bug do servidor.

    
por Lv Zheng 01.12.2015 / 13:33

1 resposta

0

Encontrei uma solução alternativa aqui: link

Basta colocar a seguinte linha no arquivo de configuração .htaccess ou httpd:

RequestHeader edit "If-None-Match" '^"((.*)-gzip)"$' '"$1", "$2"'

Sujo, mas eficaz. ;)

    
por 03.12.2015 / 08:13