1

Тема: Версії css/js, щоб оновлювалися у клієнтів css/js

Сайт на laravel.
Перейшов на використання webpack, щоб збирати, мініміфіковувати і архівувати всі css+js.
Ще варто зазначити, що я передаю в http кешування на 24 години

А тепер до суті проблеми.
Раніше, якійсь правки в css/js зводилися до:
1. Змінив css/js
2. Змінив шаблони
3. Змінив версію (dfsadfs.css?v=VERSION)
4. Це все закомітив
5. Оновив продакшин

А з webpack виходить, довелося винести версію з конфігу в .env
1. Змінив css/js
2. Змінив шаблони
3. Закомітив
4. Оновив продакшин
5. Запускаю webpack, щоб зібралися всі файли
6. В .env змінюю на сервері версію

Турбує, що поки виконуються пункти 5, 6 у мене може криво показуватися продакшин (1-5 хвилин). Точніше не криво, я зробив заглушки (коли оновлюю вмикаю режим "Тех. обслуговування"), але це теж не вау, бо сайт фактично недоступний

Можливо, я якусь криву схему придумав, порадьте, як уникати таких міні-затримок?

2

Re: Версії css/js, щоб оновлювалися у клієнтів css/js

У крутих людей все це працює через перезавантаження конфігурації (apache|nginx reload). Є сайти дев і прод і коли виходить новий реліз, то дев, після всіх тестів, які можуть тривати не 1-5 хв, 1-5 днів стає продом. І от такі коливання забезпечують постійну роботу проекту.

Подякували: ailkiv1

3

Re: Версії css/js, щоб оновлювалися у клієнтів css/js

Кешування в webpack

Шо то за мода пішла використовувати параметри версій (URL?v=VERSION) ...
Можна ж для кожного файлу встановити заголовок ETag (MDN, google-Dev).

4

Re: Версії css/js, щоб оновлювалися у клієнтів css/js

NagarD написав:

У крутих людей все це працює через перезавантаження конфігурації (apache|nginx reload). Є сайти дев і прод і коли виходить новий реліз, то дев, після всіх тестів, які можуть тривати не 1-5 хв, 1-5 днів стає продом. І от такі коливання забезпечують постійну роботу проекту.

Хороша схема, але це для великих проектів, а мені треба, щось більш простіше, щоб багфікси заливати:)

5

Re: Версії css/js, щоб оновлювалися у клієнтів css/js

leofun01 написав:

Кешування в webpack

Шо то за мода пішла використовувати параметри версій (URL?v=VERSION) ...
Можна ж для кожного файлу встановити заголовок ETag (MDN, google-Dev).

Е-е ні це різні речі, з ETag просто зменшується трафік, але запити залишаються. А у мене на файли стоїть expiry і тому браузер не шле холості запити на мій сервер.

Подякували: leofun011