Nginx:当`index`和`try_files`在同一个块中时,为什么要处理`try_files`,而不是`index`指令?

zhe*_*oli 10 nginx

nginx.conf如下:

http {
    server {
        listen  8080;
        server_name example.com;             
        root /tmp/test/example;
        location / {
            index index.html;
            try_files $uri /test.html;
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

当我访问时example.com:8080,它访问/tmp/test/example/test.html,而不是index.html.

Ric*_*ith 12

try_files指令记录在此处.

它专门记录了两个文件元素:$uri$uri/.第一个测试是否存在普通文件,第二个测试是否存在目录.

index指令作为处理URI的结果而被调用,该URI指向包含与其中一个指令参数匹配的文件的目录.

在这种情况下try_files $uri /test.html;,不测试目录的存在,因此采取默认操作.

在的情况下try_files $uri $uri/ /test.html;,一个目录是否存在测试,并因此采取的索引作用.