Как правильно настроить кеширование для браузера сервером?
Проверял сайт через google speed, он постоянно ругается, что время кеширование моим сервером установлено на 60 минут, а должно быть якобы на 1 год. И тут встает вопрос, если я установлю кеширование на 1 год, то при условии, если я поменяю jQuery со второй версии на третью, но при этом название файла подключаемое в index.html так и остается jquery.min.js, то браузер будет брать из кеша старый файл второй версии и тогда мои обновления поломаются для пользователя.
Что в этом случае делают? Я ведь действительно не могу генерировать для каждого файла в проекте file.[hash].ext генеррировать hash, ибо к примеру, некоторые js файлы импортируют внутри себя асинхронно js-файлы и они опираются на статичное название файла.
Внесите версию в имя файла.
Обратите внимание, в jQuery CDN, например, все имена файлов содержат версию. И кеширование у них на десять лет. Кстати, можете использовать CDN - это во-первых снимает с вас заботу о кешировании, во-вторых, потенциально ускоряет загрузку для клиента, т.к. у него мог остаться кеш jquery из CDN благодаря другому сайту.
С локальными скриптами можно поступить так: в приложении храните глобальную "версию скриптов", которая увеличивается при каждом коммите (или релизе), и все локальные скрипты грузите с адресов вида script.js?version=xxx. При импортировании передавайте version.