Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http Nginx-为特定位置发送静态文件_Http_Nginx_Nginx Location - Fatal编程技术网

Http Nginx-为特定位置发送静态文件

Http Nginx-为特定位置发送静态文件,http,nginx,nginx-location,Http,Nginx,Nginx Location,我正在使用nginx作为代理(使用位置/),并尝试在另一个位置块下为热链接保护重定向提供静态映像。以下是我用来尝试为形象服务的内容。我已将root指令移到location块之外,出于某种原因,这是nginx构建正确路径所必需的 location = /hotlink.png { autoindex off; try_files hotlink.png hotlink.png } 但是,当我查看日志时,它仍然通过将URI附加到根路径来查找index.html:{root}/hot

我正在使用nginx作为代理(使用
位置/
),并尝试在另一个位置块下为热链接保护重定向提供静态映像。以下是我用来尝试为形象服务的内容。我已将
root
指令移到
location
块之外,出于某种原因,这是nginx构建正确路径所必需的

location = /hotlink.png {
    autoindex off;
    try_files hotlink.png hotlink.png
}
但是,当我查看日志时,它仍然通过将URI附加到根路径来查找index.html:
{root}/hotlink.png/index.html
。 我只是希望它只在匹配了/hotlink.png时发送文件{root}/hotlink.png,就这样


为什么它仍然在寻找一个关闭了
自动索引的索引?如何解决这个问题,或者是否有更好的方法来处理这种情况?

在换档后,回到这一点,我只需将
自动索引关闭
指令移到位置块之外,就可以使它正常工作。它可与或不带
try\u files
指令的一起使用。为了简洁和避免冗余,我把它删掉了

root /path/to/static/files;
autoindex off;

location / {
   # proxy
}

location = /hotlink.png {}

删除
try\u files
语句。@RichardSmith这是我最初的想法。如果没有
try_files
,它似乎会完全跳过块,并返回
位置/
blockIs
hotlink.png
一个真实的文件?是的,它是一个真实的文件