Nginx'te belirli bir Sanal Konak için favicon.ico nasıl ayarlanır?


26

Nginx'i ilk defa web sunucusu olarak kullanıyorum. Kurmak için herhangi bir sorun yaşamadım ve her şey harika çalışıyor. Tasarımcı, bana "başlık çubuğundaki simgeyi" "oraya yerleştirmesi" için gönderip gönderemeyeceğini sorduğunda sorun ortaya çıktı.

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

Dizim:

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

Her Sanal Konak'a belirli bir favicon.ico koymak mümkün müdür? Bu dosyayı nereye koymalı ve nasıl yapılandırabilirsin?

DÜZENLE:

Bunun tamamen farklı bir sorun olduğunu anladım. Her iki cevap da doğruydu ama benim sorunum izindi. Favicon.ico dosyasının neden 600 iznine sahip olduğunu ve elbette yaptığım anın nedenini bilmiyorum:

chmod +r favicon.ico

Bir cazibe gibi çalıştı. Başkasına gelirse, bunu burada bırakacağım.


600 izni, umask ile ilgili olabilir (örneğin o kullanıcı için umask, 077 olarak ayarlanmıştır).
jcisio

İzin sorunu da benim için düzeltti!
Kzqai,

Burada da izin sorunu var. Muhtemelen bir siteye png yükleyerek ico dosyası oluşturması nedeniyle.
Aaron Storck

Yanıtlar:


14

favicon.icodosya nginx rootyönergesi ile tanımlanan web sitesi kök dizinine yerleştirilmelidir . Veya HTML’yi aşağıdaki kodu kullanarak URL’yi favicon’a geçirebilirsiniz:

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


Orada favicon.ico
dosyam

1
grep favicon.ico nginx-{access,error}.logÇıktıyı kontrol et ve kontrol et file favicon.ico- IE, ICO formatından başka bir şey anlamıyor. Ayrıca, config yalnızca bir VirtualHost gösterir.
AlexD

1
php bok, statik dosyalar kurulum ile değil mal ile
Holms

55

sites-available/[vhostconfigfile]Sunucu direktifinin altındaki özel vhost config'imizde ( ) bunu şöyle yapıyoruz :

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

Bu şekilde, herhangi bir html olmadan istediğiniz yere koyabilirsiniz.

".X" hiç gerekli değildir ve yalnızca bu dosya adını istediğiniz herhangi bir şeyle değiştirebileceğinizi belirtir. Ben sadece ".X" kullanıyorum. başvurduğum belirli alt etki alanını tanımlamak için yer tutucu olarak. Tamamen organizasyon için.


Bu benim durumum için mükemmel. Sunucum için Webmin ve phpVirtualBox ile bağlantılı basit bir index.htm var ve hepsinin aynı özel favicon'a sahip olmasını istedim.
RyanScottLewis

neden =oraya ihtiyacın var?
saat

4
= Gerekli olmayabilir , ancak mütevazı bir hız olabilir ve doğru olabilir. Dokümanlara bakın: nginx.org/en/docs/http/ngx_http_core_module.html#location
Scott Stafford

İlk olarak, bir ihtiyaç vardır .Xin /var/www/media/images/favicon.X.ico? İkincisi, bu çözümü tam olarak yazıldığı gibi denedim, hala çalışmıyor. Belki de bu işe yaramazsa auto_index on;? Belki de @AlexD tavsiyesi gerektirir.
JamesThomasMoon1979 31:15

Haklısın, '.X' gerekli değildir. Çalıştığımız farklı siteler için aynı klasörde bulunan pek çok favorimiz var, bu yüzden onları benzersiz bir şekilde adlandırıyoruz. 'Favicon.ico' olarak sunmak istediğiniz dosyanın tam dosya adı olmalıdır. Yukarıda listelenen yönerge, web sunucusunun istemcinin tarayıcısına doğru 'favicon.ico' dosya adını vermesini sağlarken asıl dosyanın rastgele adlandırılmasını sağlar.
eficker

0

Bu, sanal ana bilgisayarın dosyalarının nereden alındığı (kök dizini) söz konusu favicon.ico dosyasını koymalısınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.