Теперь следующее не поможет вам с файлами, которые уже кешированы, но, двигаясь вперед, вы можете использовать следующее, чтобы легко заставить запрос получить что-то новое, не меняя фактического имени файла.
# Rewrite all requests for JS and CSS files to files of the same name, without
# any numbers in them. This lets the JS and CSS be force out of cache easily
# by putting a number at the end of the filename
# e.g. a request for static/js/site-52.js will get the file static/js/site.js instead.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^static/(js|css)/([a-z]+)-([0-9]+)\.(js|css)$ /site/$1/$2.$4 [R=302,NC,L]
</IfModule>
Конечно, чем выше в структуре вашей папки вы применяете этот тип подхода,
чем больше вы выбрасываете вещи из кеша простым изменением.
Так, например, если вы храните весь css и javascript вашего сайта в одной главной папке
/assets/js
/assets/css
/assets/...
Тогда вы можете начать ссылаться на него как «assets-XXX» в своем html и использовать подобное правило, чтобы выкинуть весь контент активов из кэша.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^assets-([a-z0-9]+)/(.*) /$2 [R=302,NC,L]
</IfModule>
Обратите внимание, что если вы продолжите в том же духе, после того, как все заработает, измените 302 на 301, и затем сработает кэширование. Когда это 302, оно не будет кэшироваться на уровне браузера, потому что это временное перенаправление. Если вы сделаете это таким образом, то вы можете увеличить время истечения по умолчанию до 30 дней для всех активов, поскольку вы можете легко выкинуть вещи из кэша, просто изменив имя папки на странице входа в систему.
<IfModule mod_expires.c>
ExpiresActive on
ExpiresDefault A2592000
</IfModule>