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

Nginx:当'index'和'try_files'在同一块中时,为什么会处理'try_files',而不是'index'指令?,nginx,Nginx,nginx.conf如下所示: http { server { listen 8080; server_name example.com; root /tmp/test/example; location / { index index.html; try_files $uri /test.html; } } } 当我访问

nginx.conf如下所示:

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

    }
}

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

执行了
try\u files
指令

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

index
指令是在处理指向目录的URI时调用的,该目录包含与指令参数之一匹配的文件

如果是
try_文件$uri/test.html,则不测试目录是否存在,因此会采取默认操作


如果是
try_files$uri$uri//test.html,测试目录的存在性,并因此执行索引操作。

如何
try\u files$uri$uri//test.html
?@RichardSmith,它访问了文件
index.html
,为什么?测试目录是否存在,目录是否引用了
根目录Smith@zhenguoli对于URI
/
,答案是肯定的。目录指的是您在URI中请求的目录,对吗?@Richard Smith