Как кэшировать бюст ES6 javascript-модулей с помощью nginx и перенаправления 302 - PullRequest
0 голосов
/ 16 мая 2019

Я размещаю модуль ES6 javascript, используя nginx. Современные браузеры автоматически загружают свои импортированные зависимости . Поскольку они статичны, я хочу, чтобы браузеры их кешировали. Но я также хочу, чтобы конечные пользователи автоматически получали обновления моего модуля, как только я развернул новую версию (Cache Busting).

Допустим, следующие файлы и зависимости:

/a.js ---> b.js
/b.js

Во время сборки я меняю их имена, чтобы они содержали их хэш md5:

/a.be8654ac0f52d085d1d91a8f447329e2.md5.js ---> b.js
/b.14a723a49c59b609d5b2614204bd5513.md5.js

Я хочу, чтобы все запросы на a.js и b.js были перенаправлены на соответствующие им имена хеш-файлов.

/a.js ---> /a.be8654ac0f52d085d1d91a8f447329e2.md5.js
/b.js ---> /b.14a723a49c59b609d5b2614204bd5513.md5.js

Я хочу, чтобы nginx позаботился об идентификации хэшированных имен файлов и доставке их с заголовками управления кэшем. Это должно быть возможно так:

# Cachable Javascript
location ~* \.[\d\w]{32}\.md5.js$ {
  expires 1y;
  add_header Cache-Control "public";
}

Все другие (не хэшированные) ресурсы JS должны быть перенаправлены на соответствующую им версию хеш-имени файла. Если я выпущу новую версию a.js и b.js (с новыми хэшами md5), я хочу, чтобы конфигурация nginx работала без настроек.

Как я могу настроить nginx соответственно? Возможно ли это вообще с nginx? Если нет, я открыт для других подходов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...