7

これは私の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今、 byにアクセスしたいと思いますhttp://localhost/js/api/v1.0/main.js

そして、404 エラーを返します。

ngnix はD:/workspace/javascript/maplib/js/api/v1.0/main.js存在しないファイルを取得しようとしたようです。

(URL 内の)文字列パスlocationはファイル システムに存在する必要があるようです。

私の要件を満たすように修正するにはどうすればよいですか?

ところで、js だけでなく、..gif,.png,.html内の ような他の種類のファイルもありますD:/workspace/javascript/maplib/

4

3 に答える 3

19

を使用しaliasます。参照: http://nginx.org/en/docs/http/ngx_http_core_module.html#alias

つまり、交換

root   D:/workspace/javascript/maplib/;

alias   D:/workspace/javascript/maplib/;
于 2013-05-13T04:56:33.837 に答える
0

次のようにrewrite内部で使用します。location /js/api/

rewrite ^/js/api(.*)$ $1;
于 2013-05-13T02:15:21.000 に答える
0

root を try_files で使用できます。try_files 行を追加するだけです

location /js/api/ {
    root   D:/workspace/javascript/maplib/;
    autoindex on;
    try_files $uri $uri/ =404;
}
于 2013-05-13T18:18:43.100 に答える