У меня есть приложение NextJS, работающее на порту 3000, и у меня есть файл test.ico
, расположенный в следующем месте:
/static/images/icons/
Я хочу, чтобы этот файл обслуживался из корневого каталога. чем фактический путь. Я имею в виду, что вместо https://www.schandillia.com/static/images/icons/test.ico я хочу, чтобы он был доступен как https://www.schandillia.com/ test.ico . Я могу легко настроить свой сервер Express для обслуживания этого файла, но я хочу, чтобы Nginx справился с этим. Итак, у меня есть следующая конфигурация, добавленная в мой блок сервера Nginx conf:
location / {
proxy_pass http://127.0.0.1:3000;
charset UTF-8;
proxy_http_version 1.1;
}
location /test.ico {
proxy_pass http://127.0.0.1:3000/static/images/icons/test.ico;
expires 365d;
add_header Pragma public;
add_header Cache-Control "public";
}
location ~* \.(?:ico|svg|woff|woff2|ttf|otf|css|js|gif|jpe?g|png)$ {
proxy_pass http://127.0.0.1:3000;
expires 365d;
add_header Pragma public;
add_header Cache-Control "public";
}
Однако https://www.schandillia.com/test.ico теперь выдает ошибку 404. Что я делаю не так?
Регулярное выражение расположение
имеет приоритет над обычными блоками префикса расположение
. См. этот документ для получения подробной информации.
Вы можете изменить порядок приоритета, используя любой из следующих вариантов:
location = /test.ico
location ^= /test.ico
location ~ ^/test.ico