nginx中的位置和文档路径

时间:2013-05-13 01:41:07

标签: nginx

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

3 个答案:

答案 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;
}