web-dev-qa-db-ja.com

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

魅力のように働いた。他の誰かに起こった場合は、ここに置いておきます。

27
ersamy

favicon.icoファイルは、nginx root ディレクティブで定義されたWebサイトのルートディレクトリに配置する必要があります。または、HTMLで次のコードを使用してURLをファビコンに渡すこともできます。

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

14
AlexD

これは、特定のvhost構成(sites-available/[vhostconfigfile])サーバーディレクティブの下:

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

そうすれば、HTMLを一切使わずに、好きな場所に配置できます。

「.X。」は必須ではなく、このファイル名を好きなように変更できることを示すだけです。私は単に「.X」を使用します私が参照している特定のサブドメインを識別するためのプレースホルダーとして。その純粋に組織のため。

56
eficker

つまり、仮想ホストのファイルが(ルートディレクトリ)から取得される場合は常に、その特定のfavicon.icoファイルを配置する必要があります。

0
U4iK_HaZe