如何从nginx地图提供静态文件?

我有一个看起来像这样的configuration中的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; 

但尝试访问/route_a时得到了404。

我尝试在服务器块内的locationalias

 location ~ ^ { alias $route; } 

哪些工作,但服务我的内容作为application/octet-stream

什么是正确的方法来做到这一点?

我的约束是,URIpath到文件必须在地图块内定义。

你应该检查你的错误日志,看看实际发生了什么。 这个configuration适用于我:

 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”指令设置正确的path?