Как обновить кэшированные файлы в браузере пользователя

Для того, чтобы сайт быстрее грузился, веб мастера используют кэш браузера, где сохраняются детали сайта, картинки, .css, .js, и так далее. При первой загрузки страницы, в кэш попадает, например, файл.js, при следующих загрузках страниц, проверяется наличие этого файла, если он есть, берется из кэша, если нет, тянется с сервера. Это действительно очень удобно, как для веб мастера, так и для читателей его сайта. Но как быть, если файл.js был отредактирован, добавили или изменили функционал, ведь пользователь не увидит внесенных изменений, так как его браузер хватает файлы из кэша. Каждый раз просить своих пользователей, чтобы те почистили кэш браузера? Это бред, полный... Есть выход, где не надо ни кого просить совершать какие то действия! И сейчас я постараюсь о нем рассказать.

И так, мы подключаем файлы так:
<script src="https://site.ru/file.js"></script>

Браузер видит, что файл тот же и вытягивает его из своего кэша. А если после внесенных правок, подключать файл так (дописывать: ?xxx):
<script src="https://site.ru/file.js?001"></script>

То браузер воспримет файл.js, как что то новое и загрузит его с сервера, тут та пользователь и увидит новый функционал. При еще одном нововведении, меняем цифру:
<script src="https://site.ru/file.js?002"></script>

И так, при каждом редактировании. Это такая, маленькая хитрость!
В phpFox из коробки было реализовано добавление версии статики (?v=), после расширения подключаемого файла, но версия могла не смениться, работало через раз или вообще не работало. В общем я переделал по своему.

На многих CMS написана система кэширования шаблонов и статических файлов, возможно чего то еще, но на данный момент нас интересуют только статические файлы, а именно ".css" и ".js". Свой движок я настроил таким образом, чтобы он собирал все имеющиеся файлы.js в один, предварительно сжав их код. В итоге получается, что страница тянет за собой один - два файла.js, а не целый "батальон", так же и с .css файлами. Чтобы пользователю загружалась страница только с актуальным функционалом и стилем, я дописал время генерации сжатого файла в секундах, это значение сохраняю в кэше движка и каждый раз проверяю есть ли запись версии статики или нет. Если есть, беру ее, если нет, создаю и отправляю. Получается так: после правки файла ".js" или ".css", необходимо чистить кеш движка, в момент очистки, удаляются все записи в кеше, в том числе и запись версии статики, значит, что при загрузки страницы будет сгенерировано новое значение версии и пользователь получит актуальный функционал и стиль.

Так подключается файл стиля у меня:
<link rel="stylesheet" type="text/css" href="https://danfa.net/file/static/e984abb8e00767befaea97411cee9e8e.css?1525743695" />

Так JS:
<script src="https://danfa.net/file/static/38b0dbc54624385bb7ba0cff01d60b4e.js?1525743695"></script>