Использование обновленной строки запроса - плохое решение.Посмотрите, что Стив Соудерс сказал об этом: http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/
Идеальный способ - переименовать сам файл.Некоторые люди предпочитают использовать отметку времени последней модификации, что, по-моему, является проблемой.
В современной веб-разработке вам действительно необходимо максимально оптимизировать свою страницу, что означает объединение CSS и JavaScript в одинфайлы, которые минифицированы.Это означает, что вы вводите шаг сборки в свой процесс, и что время последнего изменения вашего файла всегда будет при последней сборке.Если вы установите это имя в качестве имени файла, вы по сути все время будете разрушать кэш пользователей, и иногда вам это не нужно.
Я рекомендую переименовать файлы в сумму md5 их содержимого.Таким образом, вы можете делать новые сборки все время, но имя файла меняется только при изменении содержимого.Это делает ваше имя файла идентификатором содержимого.Используя это, вы можете установить заголовок с истекшим сроком давности на весь ваш статический контент и просто перестать беспокоиться об этом.
Я могу рекомендовать использовать для этого систему сборки, так как этот рабочий процесс становится скучным быстро.Моя компания недавно открыла исходный код, который делает это среди множества других вещей, которые оптимизируют вашу веб-страницу: https://github.com/One-com/assetgraph-builder Есть много других инструментов сборки, которые делают то же самое.Посмотрите вокруг и найдите тот, который лучше всего подходит для вашей разработки.