O problema era que ele estava usando o SendFile do kernel, que fazia com que ele perdesse o arquivo que estava sendo alterado. Adicionando as seguintes correções:
EnableSendfile off
(o "arquivo" está em minúsculas)
O navegador não está armazenando em cache. Obtém os cabeçalhos de resposta:
Accept-Ranges:bytes
Cache-Control:max-age=0, no-cache, no-store, must-revalidate
Connection:Keep-Alive
Content-Length:425169
Content-Type:application/javascript
Date:Thu, 09 Mar 2017 20:06:53 GMT
Expires:Wed, 11 Jan 1984 05:00:00 GMT
Keep-Alive:timeout=5, max=100
Last-Modified:Thu, 09 Mar 2017 20:06:49 GMT
Pragma:no-cache
Server:Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips PHP/5.4.16
Minhas configurações no Apache:
<VirtualHost *:80>
<Directory "/webapps/apps/devsite">
Allow from all
AllowOverride All
Order allow,deny
</Directory>
DocumentRoot /webapps/apps/devsite
ServerName testing.devsite.com
SSLEngine off
</VirtualHost>
Meu .htaccess:
<FilesMatch "\.(html|htm|js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>
O seguinte carrega uma nova versão não armazenada em cache:
rm -f /webapps/apps/devsite/scripts/script.js
O que se segue carrega uma versão antiga do CACHED!:
rm -f /webapps/apps/devsite/scripts/script.js
Isso mostra que o Apache de alguma forma está armazenando o cache até receber uma nova requisição e não pode encontrá-lo. Por quê? Como faço para corrigir isso?
O problema era que ele estava usando o SendFile do kernel, que fazia com que ele perdesse o arquivo que estava sendo alterado. Adicionando as seguintes correções:
EnableSendfile off
(o "arquivo" está em minúsculas)
Tags cache centos apache-httpd