Да, добавление уникальной строки запроса в URI ресурса заставит клиента выбрать «свежую» версию (поскольку клиент не знает, что это просто обновление ранее кэшированного ресурса),Это называется fingerprinting , и вы обычно используете временную метку или инкрементный номер версии 1 файла CSS.
В Google Web Fundamentals есть отличная статья на Оптимизация кеша HTTP .Особенно раздел под названием «Аннулирование и обновление кэшированных ответов:»
Как вы получаете лучшее из обоих миров: кэширование на стороне клиента и быстрые обновления? Вы изменяете URL ресурса и заставляете пользователя загружать новый ответ при каждом изменении его содержимого.Как правило, вы делаете это путем встраивания отпечатка файла или номера версии в его имя файла - например, style. x234dff .css.
Обратите внимание, чтоотпечаток пальца не должен быть последовательным номером.Любое значение - хеш, версия и т. Д. - будет действовать до тех пор, пока риск коллизий ограничен.
1) Это то, что здесь делается на SO, например, http://sstatic.net/js/global-login.js?v=12