O Apache não serve mudanças em um arquivo atualizado por gulpjs

3

Eu tenho uma configuração da VM do CentOS 6.5 usando o Apache HTTPD 2.2 como o servidor da web e estou usando o GulpJS para o meu processo de criação. Quando eu atualizo um arquivo CSS, o processo de compilação do GulpJS é executado corretamente e, se eu observar o arquivo na VM, posso ver as atualizações, no entanto, quando é veiculado via Apache HTTPD, o arquivo não possui as alterações nele. Se eu editar o arquivo usando vi, não faça alterações e simplesmente salve-o novamente Apache HTTPD, em seguida, seleciona as alterações e gera o arquivo correto.

Desativei o módulo mod_cache (por exemplo, comentei a diretiva LoadModule para ele), pois achei que poderia ser a causa, mas isso não fez diferença.

Alguém mais se deparou com esse problema e sabe como corrigi-lo?

[UPDATE] - Apenas observei o log de acesso do httpd e posso ver que o arquivo está sendo atendido pelo httpd toda vez, antes e depois das atualizações, mas nada muda:

192.168.56.1 - - [22/Jun/2014:09:27:42 +0100] "GET /includes/min/stylesheet.min.css HTTP/1.1" 200 135882 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"
192.168.56.1 - - [22/Jun/2014:09:29:22 +0100] "GET /includes/min/stylesheet.min.css HTTP/1.1" 200 135878 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36"

Além do tamanho do arquivo. Isso sugeriria que o httpd está vendo a atualização do arquivo, mas não está atualizando no navegador. Eu tentei vários navegadores diferentes, limpando caches de navegador, etc. mas até eu editar o arquivo no servidor usando o vi e salvá-lo novamente nenhum navegador irá carregar a nova versão do arquivo, o que me leva a pensar que o httpd ainda está servindo a versão errada do arquivo. Tão estranho.

[UPDATE 2] - Eu acredito que isso pode ser algo a ver com o VirtualBox e as pastas compartilhadas. Os arquivos do site estão no host (Mac OS X 10.9.3) e compilados lá usando o NodeJS. Eles são compilados em uma pasta que é compartilhada com o sistema operacional convidado (CentOS) usando as pastas compartilhadas do VBox. Se eu olhar o arquivo no diretório através do console eu vejo:

-rwxrwxrwx. 1 root root 135881 Jun 23  2014 stylesheet.min.css

Como você pode ver, em vez do mês, dia e horário normais do arquivo, ele tem Mês, Dia e Ano. Isso parece fora de lugar para mim, mas não tenho ideia do que isso significa ou se é significativo.

    
por andrewdixon 22.06.2014 / 10:43

1 resposta

3

Encontrou a solução para isso. Foi um problema de cache do Apache HTTPD. Eu coloquei os módulos mod_cache e mod_disk_cache de volta e então configurei a seguinte diretiva:

CacheDisable /

Isso resolveu o problema. Não sei por que simplesmente não carregar os módulos de cache não teve o mesmo efeito.

ATUALIZAÇÃO: Embora isso pareça resolver o problema por algum tempo, não parece ser a solução real. O problema, na verdade, tem a ver com a máquina rodando no VirtualBox e os arquivos que ele está servindo na máquina host e montados no convidado usando o vboxsf. O problema e a solução são explicados no seguinte post:

link

    
por 25.06.2014 / 09:31