Установить заголовок контроля кэша для определенной подпапки внутри папки статики - PullRequest
0 голосов
/ 29 октября 2019

У меня есть папка static с этой структурой,

└── static
    ├── images
    ├── locales
    └── robots.txt

Я установил директиву location для этой папки для публичного кэширования файлов.

location /static {
    access_log        off;
    log_not_found     off;
    expires           1y;
    autoindex         off;
    add_header        Cache-Control "public";
}

Я хочу изменить заголовок Cache-Control на public, stale-while-revalidate=60, stale-if-error=60 для всех файлов json, которые находятся внутри папки locales .

Я пробовал вложенное местоположение, но безуспешно,

location /static {
    access_log        off;
    log_not_found     off;
    expires           1y;
    autoindex         off;
    add_header        Cache-Control "public";

    location /static/locales/.*/.*\.json$ {
         expires      1w;
         add_header   Cache-Control "public,stale-while-revalidate=60, stale-if-error=60";
     }
}

1 Ответ

0 голосов
/ 29 октября 2019

Очевидно, я был действительно близок к решению, все, что мне нужно было добавить ~ перед регулярным выражением во вложенном месте,

Это работает!

location /static {
    access_log        off;
    log_not_found     off;
    expires           1y;
    autoindex         off;
    add_header        Cache-Control "public";

    location ~ /static/locales/.*/.*\.json$ {
         expires      1w;
         add_header   Cache-Control "public,stale-while-revalidate=60, stale-if-error=60";
     }
}
...