Что это за параметр в настройках NGINX?

Здравствуйте, есть конфиг vhost'а nginx, где указано:

location ~* ^.+\.(css|js)$ {
			root     		"%hostdir%";
			#rewrite ^(.+)\.(\d+)\.(css|js)$ $1.$3 last;
			add_header		Cache-Control "public, max-age=31536000, s-maxage=31536000, no-transform";
    }

Мне все понятно, кроме строки:

rewrite ^(.+)\.(\d+)\.(css|js)$ $1.$3 last;

посему она пока закомментирована...

Подскажите, какова функция этих параметров?
  • Вопрос задан
  • 143 просмотра
Решения вопроса 1
Это регулярное выражение: ^(.+)\.(\d+)\.(css|js)$

^ — начало строки
( ) — то, что внутри скобок, отдельно попадёт в переменные $1, $2, .. $N
. — любой символ
+ — определяет количество предшесвтующего ему: «1 или несколько»
.+ — один или несколько любых символов
\. — буквально точка обыкновенная, point vulgaris, без спец. значения
\d — цифра. \d+ одна или несколько цифр
(css|js) – или "css" или "js"
$ — конец строки

Таким образом эта регулярка совпадёт, скажем, со строкой
/css/main.min.682375227.css и заменит её строкой без числа:
/css/main.min.css

Наверное, так борются с кэшированием в браузере. В HTML можно писать с любым числом, и браузер подумает, что это что-то новое. А сервер всегда отдаст один и тот же main.min.css, какой там у него есть.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы