O serviço Apache modificou incorretamente os recursos estáticos: serve arquivos obsoletos com tamanhos ajustados para corresponder ao do novo arquivo [duplicado]

1

Eu tenho um projeto CakePHP rodando em um CentOS VirtualBox. O site é servido com o Apache 2.2.15.

Existem arquivos JS na pasta raiz do documento. O Apache parecia servir para eles.

Mas depois de editar um arquivo JS, o Apache veicula o arquivo antigo. Ele modificará o tamanho do arquivo antigo para corresponder ao tamanho do novo arquivo e exibir o arquivo antigo modificado:

  • Se o novo arquivo for menor que o antigo, ele cortaria o arquivo antigo e veicularia o resultado;
  • Se o novo arquivo for maior que o arquivo antigo, ele acrescentaria símbolos ao arquivo antigo e veicularia o resultado.

Reiniciar o Apache não resolve o problema.

A única maneira que encontrei para fazer o Apache servir o arquivo atual é mover o arquivo para outro local. Então CakePHP irá exibir uma página de fantasia 404. Então eu movo o arquivo de volta, e o Apache exibe o arquivo em seu estado atual.

Mas o i2.2.15t irá congelar o arquivo nesse estado e depois de modificar o arquivo novamente, terei que repetir o truque novamente.

Os logs do Apache estão limpos, o arquivo de log de acesso exibe isso:

172.28.128.1 - - [12/Jul/2014:07:42:13 -0400] "GET /assets/js/compiled/editable_group.js HTTP/1.1" 200 903

Qual é o motivo do problema e como posso resolvê-lo?

PS Terei prazer em fornecer detalhes, registros, configurações, etc. Basta dizer o que você deseja ver.

    
por lolmaus - Andrey Mikhaylov 12.07.2014 / 13:45

1 resposta

2

Ok, encontrei a resposta nesta pergunta:

Apache no CentOS 5.9 VM serve arquivos modificados incorretamente

A solução é incluir EnableSendfile off na seção <directory> na configuração do Apache.

    
por 12.07.2014 / 13:58