gpt4 book ai didi

nginx - 如何为Nginx中丢失的favicon.ico文件返回204而不是404?

转载 作者:行者123 更新时间:2023-12-04 17:34:41 29 4
gpt4 key购买 nike

对于我的网站,我通常有两个server{}块:一个服务于该站点,另一个服务于来自不同域的该站点的静态内容。因为总是从主域而不是静态域中请求favicon.ico文件,所以我必须在站点的server{}块而不是静态文件块中处理该特定文件。

当找不到favicon.ico文件时,Nginx返回我的定义404错误页面以及404 HTTP状态代码。但是,我不想为我漂亮的404页面发送这些位。 我想发送带有204状态代码的完全空的响应。以下是我尝试过的方法,但是它不起作用。有正确的方法吗? 的想法是204会指示找到的文件,但是完全是空白图像。

另外,我尝试保存位实际上不是一个好主意吗? 实际上,如果返回204而不是404是一个坏主意,是否有一种更优雅的方法来返回空的404页面,而无需创建一个新的实际为空的文件并将其设置为该位置块内的error_page指令?

server {
...


error_page 404 /../static/404.html;

location @return_204 {
return 204;
}

# Case-insensitive matching of .txt and .xml files.
# (Example: robots.txt, crossdomain.xml, and sitemap.xml)
location ~* \.(txt|xml)$ {
try_files $uri /../static/$uri;
}

location = /favicon.ico {
log_not_found off;
error_page 404 = @return_204;

try_files $uri /../static/$uri;
}

...
}

最佳答案

我认为这是您要寻找的:

location = /favicon.ico {
try_files $uri = 204;
}

它将尝试在URI或204处查找文件作为后备。
Here's the relevant documentation.

关于nginx - 如何为Nginx中丢失的favicon.ico文件返回204而不是404?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25417057/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com