Image 接收完整路径时,为单个静态文件提供服务的Nginx失败
我已经设置了一个非常简单的naivenginx配置块,只为使用别名的路径上的单个映像提供服务器。以下是配置:Image 接收完整路径时,为单个静态文件提供服务的Nginx失败,image,nginx,static,content-type,Image,Nginx,Static,Content Type,我已经设置了一个非常简单的naivenginx配置块,只为使用别名的路径上的单个映像提供服务器。以下是配置: location /images/logo/ { alias /var/www/logo.png; } 在hostname/images/logo上请求服务器会给我推送(未显示)的图像。但是,使用位置中定义的尾随/来请求它会给我一个错误。特别是基于日志的索引: [警报]16367#16367:*3“/var/www/logo.pngindex.html”不是目录 这是令人沮丧的
location /images/logo/ {
alias /var/www/logo.png;
}
在hostname/images/logo
上请求服务器会给我推送(未显示)的图像。但是,使用位置中定义的尾随/来请求它会给我一个错误。特别是基于日志的索引:
[警报]16367#16367:*3“/var/www/logo.pngindex.html”不是目录
这是令人沮丧的,但我添加了autoindex off代码>到配置块。还是同样的错误。我试图将位置更改为正则表达式,以使尾部的/
可选,但这似乎也没什么作用
我觉得被一个简单的静态别名打败了。我只想让路径/images/logo/
返回图像,而不考虑后面的斜杠。有人知道这个问题的简单解决方法吗
此外,我假设添加default\u-type图像/png代码>到块将修复内容类型,因此NGINX将帮助浏览器显示图像,而不是下载图像,但这似乎也不起作用
TLDR:
- 试图让NGINX在有尾随或无尾随的路径上以静态图像响应
/
- 试图让NGINX以浏览器能够理解的正确内容类型作出响应
您可以使用try\u files
来定义文件名,而不是alias
语句。优点是文件的扩展名将被声明,这将使MIME类型正常工作
例如:
location /images/logo {
root /var/www;
try_files /logo.png =404;
}
有关详细信息,请参阅。是否仍然无法使用尾部斜杠,这是我最大的问题。它确实提供文件。仅尾部斜杠仍然是一个问题。另外,请注意,尾部的/
已从位置
语句中删除,以便它与带有或不带有尾部的/
的URI相匹配。我已经测试过这个解决方案,它可以与任何以/images/logo
开头的URI一起工作。仍然得到:[05/Jan/2020:23:56:17+0000]“GET/images/logo/HTTP/1.1”404 199
我认为它可以匹配,也可以不匹配,但我真的不想这么做。