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

ers*_*amy 31 nginx virtualhost favicon

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

# /opt/nginx/conf/nginx.conf
...
server {
    listen 80 ;
    server_name *.website.com website.com;
    root /home/webuser/sites/website;
}
Run Code Online (Sandbox Code Playgroud)

我的目录:

/home/webuser/sites/website/
|_ index.html
|_ main.css
|_ favicon.ico
Run Code Online (Sandbox Code Playgroud)

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

编辑:

我才意识到这是一个完全不同的问题。两个答案都是正确的,但我的问题是许可。我不知道为什么文件 favicon.ico 最终获得了 600 权限,当然我这样做的那一刻:

chmod +r favicon.ico
Run Code Online (Sandbox Code Playgroud)

像魅力一样工作。如果它发生在其他人身上,我会把它留在这里。

efi*_*ker 63

这就是我们sites-available/[vhostconfigfile]在 server 指令下的特定 vhost 配置 ( ) 中执行此操作的方式:

location = /favicon.ico {
    alias /var/www/media/images/favicon.X.ico;
}
Run Code Online (Sandbox Code Playgroud)

这样你就可以把它放在任何你想要的地方,而没有任何 html。

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

  • = 可能不是*必需*,但它可能是一个适度的加速并且是正确的。查看文档:http://nginx.org/en/docs/http/ngx_http_core_module.html#location (4认同)

Ale*_*exD 15

favicon.ico文件应该放在由 nginxroot指令定义的网站根目录中。或者您可以通过在 HTML 中使用以下代码将 URL 传递给网站图标:

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