这是我的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; }