如何为 Nginx 上的特定虚拟主机设置 favicon.ico?

如何为 Nginx 上的特定虚拟主机设置 favicon.ico?

这是我第一次使用 Nginx 作为我的网络服务器。设置它没有任何麻烦,一切都运行良好。问题出现在设计师问我是否可以将“标题栏中的图标”发送给我以便“将其放在那里”时。

# /opt/nginx/conf/nginx.conf
...
server {
    listen 80 ;
    server_name *.website.com website.com;
    root /home/webuser/sites/website;
}

我的目录:

/home/webuser/sites/website/
|_ index.html
|_ main.css
|_ favicon.ico

是否可以将特定的 favicon.ico 放在每个虚拟主机上?该文件应放在哪里以及如何配置它?

编辑:

我刚刚意识到这是一个完全不同的问题。两个答案都是正确的,但我的问题是权限。我不知道为什么文件 favicon.ico 最终拥有权限 600,当然,在我这样做的时候:

chmod +r favicon.ico

效果非常好。如果其他人也遇到这种情况,我会在这里分享。

答案1

favicon.ico文件应该放在 nginx 定义的网站根目录中root指令。或者,您也可以使用以下 HTML 代码将 URL 传递给 favicon:

<link rel="shortcut icon" href="http://example.com/myicon.ico" />

答案2

sites-available/[vhostconfigfile]以下是我们在服务器指令下的特定 vhost 配置()中执行的操作:

location = /favicon.ico {
    alias /var/www/media/images/favicon.X.ico;
}

这样,您就可以将它放在任何您想要的地方,而不需要任何 HTML。

“.X.” 完全不是必需的,仅表示您可以将此文件名更改为任何您喜欢的名称。我只是使用“.X.”作为占位符来标识我所引用的特定子域。它纯粹是为了组织。

答案3

这意味着,无论虚拟主机的文件来自哪里(根目录),您都应该放置该特定的 favicon.ico 文件。

相关内容