nginx中的位置和文档path

这是我的nginxconfiguration文件:

server { listen 80; server_name localhost; location / { root d:/www; index index.html index.htm; } location /js/api/ { root D:/workspace/javascript/maplib/; autoindex on; } 

}

而文档的目录是这样的:

 D:/workspace/javascript/maplib -- v1.0 --main.js -- v1.1 

现在我想通过http://localhost/js/api/v1.0/main.js访问v1.0/main.js

它会返回一个404错误。

看来,ngnix会尝试通过D:/workspace/javascript/maplib/js/api/v1.0/main.js不存在的文件。

似乎locaation (在url中)的stringpath必须存在于文件系统中。

如何解决它,以满足我的要求?

顺便说一下,不仅有js,还有一些其他types的文件,如D:/workspace/javascript/maplib/ .gif,.png,.html

使用alias 。 参考: http : //nginx.org/en/docs/http/ngx_http_core_module.html#alias

那就是替换

 root D:/workspace/javascript/maplib/; 

通过

 alias D:/workspace/javascript/maplib/; 

location /js/api/内部使用rewrite ,例如:

 rewrite ^/js/api(.*)$ $1; 

你可以使用root和try_files,只需添加try_files行即可

 location /js/api/ { root D:/workspace/javascript/maplib/; autoindex on; try_files $uri $uri/ =404; }