如何从 nginx 映射提供静态文件?

如何从 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

我尝试过locationalias在服务器块内:

location ~ ^ {
  alias $route;
}

哪个有效,但是将我的内容作为application/octet-stream

正确的做法是什么?

我的限制是 URI 文件路径必须在map块内定义。

答案1

您应该检查错误日志以查看实际发生的情况。此配置对我有用:

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/[ab].html必须存在。

也许您只是忘记使用“root”指令设置正确的路径?

相关内容