Я всегда использую номер версии при вызове css. Например
<html>
<title>
<script src="myScript.js?v=1.1"/>
<link rel="stylesheet" href="myStyle.css?v=1.1" />
</title>
<body>
</body>
</html>
Увеличивая это число, вы дадите браузеру указание получить новую версию таблицы стилей / javascript. Это также удобно при использовании запросов AJAX, некоторые браузеры также имеют тенденцию кешировать их.
Вы можете адаптировать эту технику и построить некоторый код вокруг нее, чтобы автоматически увеличивать число. Например, вы можете использовать сгенерированный номер (или дату / время), который генерируется в начале сеанса пользователя. Когда пользователь возвращается позже, он получает новый сеанс, таким образом, новый номер.
Вы также можете использовать номер сборки из сборки (вы можете указать .NET автоматически увеличивать номер сборки в сборке) или сохранить номер сборки в файле web.config, который вы обновляете вручную.
Но на самом деле ключ заключается в том, чтобы использовать строку запроса за ссылкой на скрипт / css, поскольку браузеры не всегда подчиняются заголовку expire, а использование (новой) строки запроса заставит браузер получить новую версию.