Sé que estoy resucitando una pregunta antigua, pero hoy estaba tratando de resolver este problema y tener una solución alternativa. Alternar el almacenamiento en caché cuando quiero probar no era realmente aceptable para mí y, como otros mencionaron, la actualización dura (ctrl + shift + r) no siempre funciona.
En cambio, opté por poner lo siguiente en mi archivo vhost.conf (también se puede hacer en .htaccess) en mi entorno de desarrollo:
<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>
En mi entorno de desarrollo, esto garantiza que js y css siempre se recuperen. Además, no afecta el resto de mi navegación, y también funciona para todos los navegadores, por lo que probar en Chrome / ie, etc. también es fácil.
Encontré el fragmento aquí, algunos otros trucos prácticos de apache también: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess
Para asegurarme de que mis clientes siempre vean la última versión en producción, incrementamos la cadena de consulta en js include en cada actualización, es decir
jquery.somefile.js?v=0.5
Esto obliga a los navegadores de mis clientes a actualizar su caché local cuando ven una nueva cadena de consulta, pero luego almacena en caché la nueva copia hasta que el archivo se actualice nuevamente