Nginx पर एक विशिष्ट वर्चुअल होस्ट के लिए favicon.ico कैसे सेट करें?


26

मैं पहली बार अपने वेबसर्वर के रूप में 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

एक जादू की तरह काम किया। अगर किसी और के साथ ऐसा होता है तो मैं इसे यहां छोड़ दूंगा।


600 अनुमति umask से संबंधित हो सकती है (उस उपयोगकर्ता के लिए umask उदाहरण के लिए 077 पर सेट है)।
15

अनुमतियाँ जारी की यह मेरे लिए भी तय!
काजकाई

अनुमति मुद्दा यहां भी। संभवतः किसी साइट पर png अपलोड करके ico फ़ाइल बनाने के कारण।
एरोन स्टॉर्क

जवाबों:


14

favicon.icoफाइल को वेबसाइट के रूट डायरेक्टरी में रखा जाना चाहिए जो कि nginx rootनिर्देश द्वारा परिभाषित किया गया है । या आप HTML में निम्नलिखित कोड का उपयोग करके favicon को URL पास कर सकते हैं:

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


मेरे पास मेरी favicon.ico फ़ाइल है ... अभी भी काम नहीं कर रहा है
ersamy

1
चेक grep favicon.ico nginx-{access,error}.logऔर आउटपुट से जाँच करें file favicon.ico- IE ICO प्रारूप के अलावा और कुछ नहीं समझता है। इसके अलावा, आप कॉन्फ़िगर केवल एक VirtualHost दिखाता है।
एलेक्सा

1
php बकवास के साथ अच्छा है, स्थैतिक फ़ाइलों के सेटअप के साथ अच्छा नहीं है
होम्स

55

sites-available/[vhostconfigfile]सर्वर निर्देश के तहत हम इसे अपने विशिष्ट vhost config ( ) में कैसे करते हैं :

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

इस तरह आप इसे बिना html html के साथ कहीं भी रख सकते हैं।

एक्स।" की आवश्यकता नहीं है, और केवल यह दर्शाता है कि आप इस फ़ाइलनाम को अपनी पसंद के अनुसार बदल सकते हैं। मैं बस ".X" का उपयोग करता हूं। प्लेसहोल्डर के रूप में विशिष्ट उप डोमेन की पहचान करने के लिए जिसे मैं संदर्भित कर रहा हूं। विशुद्ध रूप से संगठन के लिए।


यह मेरी स्थिति के लिए एकदम सही है। मेरे पास अपने सर्वर के लिए Webmin और phpVirtualBox के लिंक के साथ एक साधारण index.htm है और मैं चाहता था कि सभी 3 में एक ही कस्टम फ़ेविकॉन हो।
रयानस्कॉटलेविस

आपको =वहां की आवश्यकता क्यों है ?
होम्स

4
= की आवश्यकता नहीं हो सकती है , लेकिन यह एक मामूली स्पीडअप हो सकता है और सही है। डॉक्स देखें: nginx.org/en/docs/http/ngx_http_core_module.html#location
स्कॉट स्टाफोर्ड

सबसे पहले, वहाँ के लिए एक की जरूरत .Xहै /var/www/media/images/favicon.X.ico? दूसरा, मैंने इस समाधान को बिल्कुल पोस्ट किए जाने की कोशिश की है, फिर भी काम नहीं कर रहा है। शायद यह साथ काम नहीं करता है auto_index on;? शायद इसके लिए @AlexD अनुशंसा की आवश्यकता है।
जेम्सथोमसून १

आप सही हैं, '.X' की आवश्यकता नहीं है। हमारे पास अभी भी कई फेवीकोन हैं, जो हमारे द्वारा चलाए जाने वाले विभिन्न साइटों के लिए एक ही फ़ोल्डर में स्थित हैं, इसलिए हम उन्हें विशिष्ट रूप से नाम देते हैं। यह फ़ाइल के लिए सटीक फ़ाइल नाम होना चाहिए जिसे आप 'favicon.ico' के रूप में सेवा देना चाहते हैं। ऊपर दी गई निर्देश सूची मैं ग्राहक के ब्राउज़र के लिए सही फ़ाइल नाम 'favicon.ico' की सेवा करने की अनुमति देते हुए वास्तविक फ़ाइल के मनमाने ढंग से नामकरण करने की अनुमति देता है।
इफिकर

0

इसका मतलब है, जहां भी वर्चुअल होस्ट की फाइलें (रूट डायरेक्टरी) से ली गई हैं, आपको उस विशिष्ट favicon.ico फाइल को रखना चाहिए।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.