这是我的nginx配置文件:
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
现在我想通过v1.0/main.js
访问http://localhost/js/api/v1.0/main.js
。
它返回404错误。
似乎ngnix会尝试通过D:/workspace/javascript/maplib/js/api/v1.0/main.js
获取不存在的文件。
似乎location
(在网址中)的字符串路径必须存在于文件系统中。
如何修复它以满足我的要求?
顺便说一下,.gif,.png,.html
内不仅有js,还有其他一些文件,如D:/workspace/javascript/maplib/
。
答案 0 :(得分:12)
使用alias
。参考:http://nginx.org/en/docs/http/ngx_http_core_module.html#alias
即,替换
root D:/workspace/javascript/maplib/;
通过
alias D:/workspace/javascript/maplib/;
答案 1 :(得分:0)
在rewrite
内使用location /js/api/
,例如:
rewrite ^/js/api(.*)$ $1;
答案 2 :(得分:0)
您可以将root用于try_files,只需添加try_files行
即可location /js/api/ {
root D:/workspace/javascript/maplib/;
autoindex on;
try_files $uri $uri/ =404;
}