接收完整路径的Nginx提供单个静态文件失败

问题描述 投票:1回答:1

我一直在设置一个非常简单的朴素的nginx配置块,只是为了使用别名在路径上处理单个图像。这是配置:

location /images/logo/ {
    alias /var/www/logo.png;
}

hostname/images/logo上请求服务器给了我推送的图像(未显示)。但是,在位置中定义后跟/来请求它会给我一个错误。根据日志专门建立索引:

[警报] 16367#16367:* 3“ /var/www/logo.pngindex.html”不是目录

这令人沮丧,但是好的,我将autoindex off;添加到了配置块。同样的错误。我试图将位置更改为正则表达式,以使结尾的/可选,但这似乎并没有太大作用。

我觉得自己被一个简单的静态别名打败了。我只希望路径/images/logo/返回图像而不管其后是否有斜杠。有人知道一个简单的解决方法吗?

[另外,我假定将default_type image/png;添加到块中将修复内容类型,因此NGINX将帮助浏览器显示而不下载图像,但这似乎也不起作用。

TLDR:

  • 试图使NGINX在路径上带有或不带有尾随/的静态图像做出响应>
  • [试图让NGINX以正确的内容类型响应,以使浏览器理解

我一直在设置一个非常简单的朴素的nginx配置块,只是为了使用别名在路径上处理单个图像。这是配置:location / images / logo / {alias /var/www/logo.png; } ...

image nginx static content-type
1个回答
0
投票

而不是alias语句,您可以使用try_files定义文件名。好处是将声明文件的扩展名,这将使MIME类型正确运行。

© www.soinside.com 2019 - 2024. All rights reserved.