Sei que estou ressuscitando uma pergunta antiga, mas estava tentando resolver esse problema hoje e tenho uma solução alternativa. Alternar o cache quando eu quero testar não era realmente aceitável para mim e, como outros mencionaram, a atualização intensa (ctrl + shift + r) nem sempre funciona.
Em vez disso, optei por colocar o seguinte no meu arquivo vhost.conf (também pode ser feito em .htaccess) no meu ambiente de desenvolvimento:
<FilesMatch "\.(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>
No meu ambiente de desenvolvimento, isso garante que js e css sejam sempre recuperados. Além disso, ele não afeta o resto da minha navegação, e também funciona para todos os navegadores; portanto, testar no chrome / etc também é fácil.
Encontre aqui o trecho, outros truques úteis do apache: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess
Para garantir que meus clientes sempre vejam a versão mais recente em produção, incrementamos a string de consulta no js include em cada atualização, ou seja,
jquery.somefile.js?v=0.5
Isso força os navegadores dos meus clientes a atualizar seu cache local quando eles veem uma nova string de consulta, mas, em seguida, armazena em cache a nova cópia até que o arquivo seja atualizado novamente