Я настраиваю сервер Nginx (версия 1.17.1) для Гэтсби, следуя рекомендации на https://www.gatsbyjs.org/docs/caching/.
Фрагмент ниже - это часть моего блока server {}
, пытающегося реализовать рекомендуемую конфигурацию кэширования;
location ~* \.(?:html)$ {
add_header Cache-Control "public, max-age=0, must-revalidate";
}
location /static {
add_header Cache-Control "public, max-age=31536000, immutable";
}
location ~* \.(?:css|js)$ {
add_header Cache-Control "public, max-age=31536000, immutable";
}
location /sw\.js {
add_header Cache-Control "public, max-age=0, must-revalidate";
}
Аналогично использовался оператор if вместо блока location {}
для определения конфигурации кэша для рабочего файла сервиса, sw.js
, как показано ниже;
if ($request_uri ~ ^sw\.(?:js)$) {
set $no_cache 1;
}
К сожалению, все файлы успешно кэшируются, как и ожидалось, кроме sw.js
.
Что я делаю не так и как я могу это исправить, чтобы эффективно установить заголовок управления кэшем для sw.js
в public, max-age=0, must-revalidate
?