मेरे पास एक favicon.ico नहीं है, लेकिन IE हमेशा इसके लिए एक अनुरोध करता है।
क्या ब्राउज़र को मेरी साइट से फ़ेविकॉन के लिए अनुरोध करने से रोकना संभव है? शायद HTML हैडर में कुछ META-TAG?
मेरे पास एक favicon.ico नहीं है, लेकिन IE हमेशा इसके लिए एक अनुरोध करता है।
क्या ब्राउज़र को मेरी साइट से फ़ेविकॉन के लिए अनुरोध करने से रोकना संभव है? शायद HTML हैडर में कुछ META-TAG?
जवाबों:
मैं पहले कहूंगा कि वेब पेज में फ़ेविकॉन होना एक अच्छी बात है (सामान्य रूप से)।
हालांकि, यह हमेशा वांछित नहीं होता है और कुछ समय के लिए डेवलपर्स को अतिरिक्त पेलोड से बचने का एक तरीका चाहिए। उदाहरण के लिए एक IFRAME बिना दिखाए एक फ़ेविकॉन का अनुरोध करेगा। अभी तक क्रोम और एंड्रॉइड में सबसे खराब IFRAME फेवीकों के लिए 3 अनुरोध उत्पन्न करेगा:
"GET /favicon.ico HTTP/1.1" 404 183
"GET /apple-touch-icon-precomposed.png HTTP/1.1" 404 197
"GET /apple-touch-icon.png HTTP/1.1" 404 189
निम्नलिखित डेटा URI का उपयोग करता है और नकली फ़ेविकॉन अनुरोधों से बचने के लिए उपयोग किया जा सकता है:
<link rel="shortcut icon" href="data:image/x-icon;," type="image/x-icon">
संदर्भ के लिए यहां देखें:
Chrome बग / व्यवहार संभवतः आगामी संस्करणों में तय किया जाएगा।
यहाँ आप के लिए वोट करने के लिए बग प्रस्तुत है:
अद्यतन 1:
टिप्पणियों (जेपीआईसी) से यह फ़ायरफ़ॉक्स की तरह दिखता है = = 25 उपरोक्त वाक्य रचना को पसंद नहीं करता है। मैंने फ़ायरफ़ॉक्स 27 पर परीक्षण किया और यह तब भी काम नहीं करता है जब यह अभी भी वेबकिट / क्रोम पर काम करता है।
तो यहाँ नया है जो सभी हाल के ब्राउज़रों को कवर करना चाहिए। मैंने सफारी, क्रोम और फ़ायरफ़ॉक्स का परीक्षण किया:
<link rel="icon" href="data:;base64,=">
मैंने "rel" विशेषता मान से "शॉर्टकट" नाम को छोड़ दिया क्योंकि यह केवल पुराने IE के लिए है और IE <8 के संस्करण या तो dataurIs को पसंद नहीं करता है। IE8 पर परीक्षण नहीं किया गया।
अद्यतन 2:
अगर आपको इसके बजाय HTML5 के उपयोग के लिए अपने दस्तावेज़ को मान्य करने की आवश्यकता है:
<link rel="icon" href="data:;base64,iVBORw0KGgo=">
<link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgo=">
इस मुद्दे को हल करने के लिए जोड़ना प्रतीत होता है।
data:image/png;base64,iVBORw0KGgo=
ब्राउज़र में खोल सकता हूं , इसे favicon.ico
उर्फ के रूप में सहेजें । PNG फ़ाइल को खाली करें और उसे वेबसाइट रूट में स्टोर करें। सही?
बस <head>
अपनी HTML फ़ाइल के अनुभाग में निम्न पंक्ति जोड़ें :
<link rel="icon" href="data:,">
इस समाधान की विशेषताएं:
href="#"
)reserves space
?
मुझे विश्वास है कि मैंने यह देखा है (मैंने व्यक्तिगत रूप से इसका परीक्षण नहीं किया है या इसका उपयोग नहीं किया है):
<link rel="shortcut icon" href="#" />
किसी को भी इसी तरह का अनुभव था?
संपादित करें:
मैंने सिर्फ ऊपर के स्निपेट का परीक्षण किया और एक मजबूर पूर्ण ताज़ा पर, फ़िडलर में कोई फ़ेविकॉन अनुरोध नहीं देखा गया। मैंने IE8 (IE7 मानकों के रूप में कम्पोजिट मोड) और FF 3.6 के खिलाफ परीक्षण किया।
href
कुछ स्थिर (कैश्ड) संसाधन का लिंक होगा, जिन्हें आपने पहले ही लोड किया है (उदाहरण के लिए css या स्क्रिप्ट फ़ाइल) - यह सुनिश्चित करने के लिए कि एक डायनामिक (नॉन-कैश्ड) पेज दो बार अनुरोध नहीं किया गया है। (बस href="#"
वर्तमान वेब पेज पर तकनीकी रूप से इंगित करने के लिए सुरक्षित होना चाहिए )।
आप नहीं कर सकते। आपको बस इतना कर सकते हैं को छोटे से छोटा है कि छवि बनाने के लिए और कुछ कैश अमान्यकरण हेडर सेट करना है ( Expires
, Cache-Control
) भविष्य में अब तक। यहाँ याहू क्या है! favicon.ico अनुरोधों के बारे में कहना है ।
आप favicon.ico तक पहुँच को अस्वीकार करने के लिए .htaccess या सर्वर के निर्देशों का उपयोग कर सकते हैं, लेकिन सर्वर ब्राउज़र तक पहुँच अस्वीकृत उत्तर भेजेगा और यह अभी भी पृष्ठ की पहुँच को धीमा कर देता है।
जब ब्राउज़र आपकी साइट पर वापस आ जाता है, तो आप ब्राउज़र को अपनी साइट पर वापस आने के लिए favicon.ico का अनुरोध करने से रोक सकते हैं।
सबसे पहले, एक छोटी favicon.ico छवि प्रदान करें, रिक्त हो सकती है, लेकिन जितना संभव हो उतना छोटा। मैंने 200 बाइट्स के तहत एक काले और सफेद को बनाया। फिर, .htaccess या सर्वर निर्देशों का उपयोग करते हुए, फ़ाइल की समय सीमा समाप्त होने पर भविष्य में एक या दो महीने निर्धारित करें। जब वही उपयोगकर्ता आपकी साइट पर वापस आएगा, तो उसे ब्राउज़र कैश से लोड किया जाएगा और कोई अनुरोध आपकी साइट पर नहीं जाएगा। सर्वर लॉग में कोई 404 से अधिक नहीं है।
यदि आप एक पूर्ण Apache सर्वर या शायद एक आभासी सर्वर पर नियंत्रण कर सकते हैं, तो आप यह कर सकते हैं: -
यदि सर्वर डॉक्यूमेंट रूट / var / www / html है तो इसे /etc/httpd/conf/httpd.conf:- से जोड़ें
Alias /favicon.ico "/var/www/html/favicon.ico"
<Directory "/var/www/html">
<Files favicon.ico>
ExpiresActive On
ExpiresDefault "access plus 1 month"
</Files>
</Directory>
तब से एक ही favicon.ico सभी वर्चुअल होस्ट की गई साइटों के लिए काम करेगा क्योंकि आप इसे अलियास कर रहे हैं। यूजर्स के जाने के बाद इसे एक महीने के लिए ब्राउजर कैश से निकाला जाएगा।
.Htaccess के लिए यह काम करने की सूचना है (मेरे द्वारा जाँच नहीं की गई है): -
AddType image/x-icon .ico
ExpiresActive On
ExpiresByType image/x-icon "access plus 1 month"
एक बहुत ही सरल उपाय आपके नीचे दिए गए कोड को डाल रहा है .htaccess
। मेरे पास एक ही मुद्दा था और यह मेरी समस्या को हल करता है।
<IfModule mod_alias.c>
RedirectMatch 403 favicon.ico
</IfModule>
संदर्भ: http://perishablepress.com/block-favicon-url-404-requests/
हमारे अनुभव में, अपाचे favicon.ico के अनुरोध पर गिरने के साथ, हमने .htaccess फ़ाइल में अतिरिक्त हेडर के बारे में टिप्पणी की।
उदाहरण के लिए हमने हैडर को एक्स-एक्सएसएस-सुरक्षा "1; मोड = ब्लॉक" सेट किया था
... लेकिन हम a2enmod हेडर को पहले से ही भूल गए थे। अतिरिक्त हेडर को भेजकर हमारे favicon.ico मुद्दे को हल किया जा रहा है।
हमारे पास विकास के लिए कई वर्चुअल होस्ट भी थे, और http: // localhost और fetch /favicon.ico का उपयोग करते समय केवल 500 आंतरिक सर्वर त्रुटि के साथ विफल रहे । यदि आप "कर्ल -v http: //localhost/favicon.ico " चलाते हैं और होस्ट का नाम रिज़ॉल्वर कैश में नहीं है या उस प्रभाव के लिए कुछ के बारे में चेतावनी देते हैं, तो आपको समस्याओं का अनुभव हो सकता है।
यह उतना ही सरल हो सकता है जितना कि हम नहीं ले रहे हैं (हमने कोशिश की और यह काम नहीं किया, क्योंकि हमारा मूल कारण अलग था) या apache2.conf या .htaccess में निर्देशों के लिए चारों ओर देखो जो अजीब 500 आंतरिक सर्वर त्रुटि संदेश का कारण हो सकता है।
हमने पाया कि यह इतनी जल्दी विफल हो गया था कि अपाचे की त्रुटि लॉग में कुछ भी उपयोगी नहीं था और पूरी सुबह यहां छोटी-छोटी चीजों को बदलने में बिताई और जब तक हम अतिरिक्त हेडर सेट करने की समस्या को हल नहीं कर लेते, जब तक कि हम mod_headers लोड करना भूल गए थे!
कभी-कभी यह त्रुटि आती है, जब HTML में कुछ टिप्पणी कोड होता है और ब्राउज़र कुछ देखने की कोशिश कर रहा होता है। जैसे मेरे मामले में मैंने फ्लास्क में एक वेब फॉर्म के लिए कोड टिप्पणी की थी और मुझे यह मिल रहा था।
2 घंटे बिताने के बाद मैंने इसे निम्नलिखित तरीकों से तय किया:
1) मैंने एक नया पायथन वातावरण बनाया और फिर उसने टिप्पणी की गई HTML लाइन पर एक त्रुटि की, इससे पहले कि मुझे केवल 'GET /favicon.ico HTTP / 1.1 "404 त्रुटि दी गई थी
2) कभी-कभी, जब मेरे पास एक डुप्लिकेट कोड होता था, जैसे अजगर फ़ाइल उसी नाम से मौजूद होती है, तो मुझे भी यह त्रुटि दिखाई देती है, उन्हें भी हटाने का प्रयास करें
आप उपयोग कर सकते हैं
<link rel="shortcut icon" href="http://localhost/" />
इस तरह यह वास्तव में सर्वर से अनुरोध नहीं किया जाएगा।