Je sais que je ressuscite une question ancienne, mais j'essayais de résoudre ce problème aujourd'hui et d'avoir une solution alternative. Activer la mise en cache lorsque je veux tester n'était pas vraiment acceptable pour moi, et comme d'autres l'ont mentionné, l'actualisation difficile (ctrl + shift + r) ne fonctionne pas toujours.
Au lieu de cela, j'ai choisi de mettre ce qui suit dans mon fichier vhost.conf (peut également être fait dans .htaccess) sur mon environnement de développement:
<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>
Sur mon environnement de développement, cela garantit que js et css sont toujours récupérés. De plus, cela n'affecte pas le reste de ma navigation, et cela fonctionne également pour tous les navigateurs, donc tester dans chrome / ie etc est également facile.
Vous avez trouvé l'extrait de code ici, ainsi que d'autres astuces pratiques pour Apache: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess
Pour m'assurer que mes clients voient toujours la dernière version en production, nous incrémentons la chaîne de requête sur les js include à chaque mise à jour, ie
jquery.somefile.js?v=0.5
Cela force les navigateurs de mes clients à mettre à jour leur cache local lorsqu'ils voient une nouvelle chaîne de requête, mais met ensuite en cache la nouvelle copie jusqu'à ce que le fichier soit à nouveau mis à jour