Назад | Перейти на главную страницу

Как мне обслуживать статические файлы с карты nginx?

У меня есть nginx карта внутри конфигурации, которая выглядит так:

map $uri $route {
  /route_a /path/to/a.html;
  /route_b /path/to/b.html;
}

server {    
  listen 8080;
  server_name example.dev;
}

Я попытался rewrite внутри серверного блока:

rewrite  ^ $route break;

Но получил 404 при попытке доступа /route_a.

Я попытался location и alias внутри серверного блока:

location ~ ^ {
  alias $route;
}

Что сработало, но служило моему контенту как application/octet-stream.

Как правильно это сделать?

Мое ограничение состоит в том, что пути URI к файлам должны быть определены внутри map блок.

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

map $uri $route {
    /route_a /path/to/a.html;
    /route_b /path/to/b.html;
}

server {
    root /;
    listen 8080;
    server_name localhost;

    location / {
        rewrite ^ $route break;
    }
}

Конечно, должен существовать /path/to/ inventory.html.

Может, вы просто забыли указать правильный путь с помощью директивы "root"?