Очень аккуратный подход к кешированию статического контента заключается в кодировании версии вашего статического контента внутри URL.Тогда «уведомление» браузера о загрузке нового статического контента - это просто вопрос предоставления новых URL-адресов клиенту.
# first version access (1.1/main.css will never expire)
# e.g. by far future Cache-Control + Expires Header
<link ... href="/static/1.1/main.css
# after upgrading/releasing trigger fresh download
<link ... href="/static/1.2/main.css
Это требует определенных усилий для процесса сборки + развертывания, но с помощью управления кэшированием это очень просто.