Я знаю, что воскрешаю древний вопрос, но сегодня я пытался решить эту проблему и нашел альтернативное решение. Переключение кеширования, когда я хочу протестировать, было не совсем приемлемо для меня, и, как уже упоминалось, жесткое обновление (ctrl + shift + r) не всегда работает.
Вместо этого я решил добавить следующее в мой файл vhost.conf (также можно сделать в .htaccess) в моей среде разработки:
<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>
В моей среде разработки это гарантирует, что js и css всегда извлекаются. Кроме того, это не влияет на остальную часть моего просмотра, а также на все браузеры, поэтому тестирование в chrome / ie и т. Д. Также легко.
Нашел здесь фрагмент, некоторые другие полезные трюки с Apache: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess
Чтобы мои клиенты всегда видели последнюю версию на производстве, мы увеличиваем строку запроса в js include при каждом обновлении, т.е.
jquery.somefile.js?v=0.5
Это вынуждает браузеры моих клиентов обновлять свой локальный кеш при обнаружении новой строки запроса, но затем кэширует новую копию до тех пор, пока файл не обновится снова