Browsers Favicons को कैसे Cache करते हैं
Browsers favicons को आक्रामक रूप से cache करते हैं और उन्हें page के अपने cache से अलग रखते हैं, अक्सर एक सामान्य reload के बावजूद एक आइकन को कई दिनों तक रखे रहते हैं। इसीलिए एक बदला हुआ favicon इतनी बार पुरानी image ही दिखाता रहता है। refresh के लिए मजबूर करने का भरोसेमंद तरीक़ा है आइकन का URL बदलना (आमतौर पर /favicon.ico?v=2 जैसी version query string) और hard-refresh करना।
Favicons इतने चिपकू क्यों होते हैं
Favicons को ख़ास बर्ताव मिलता है। Browsers इन्हें सामान्य HTTP cache से अलग एक store में रखते हैं, लंबे lifetime के साथ रखते हैं, और एक सामान्य reload पर ज़रूरी नहीं कि इन्हें छोड़ें। कुछ एक profile-स्तर का favicon database रखते हैं जो sessions के पार बना रहता है। आपकी साइट के आगे एक CDN उसके ऊपर एक दूसरा cache जोड़ता है।
नतीजा यह है कि आइकन फ़ाइल को उसी जगह संपादित करना अक्सर अदृश्य रहता है: browser के पास उस URL के लिए पहले से एक आइकन है और उसे दोबारा पूछने का कोई कारण नहीं दिखता। यह URL पर keyed है, इसलिए हल है URL बदलना, न कि उसके पीछे के bytes।
एक ताज़ा favicon के लिए मजबूर करें
- 1
URL बदलें
एक version query string जोड़ें (/favicon.ico?v=2) ताकि browser इसे एक नए resource की तरह माने और fetch करे। हर बदलाव पर संख्या बढ़ाएँ।
- 2
Hard-refresh करें या private window इस्तेमाल करें
Cmd+Shift+R / Ctrl+F5, या एक ताज़ा private window, browser की संग्रहीत प्रति को दरकिनार कर देता है।
- 3
कोई भी CDN purge करें
अगर साइट के आगे एक CDN है, तो favicon path को invalidate करें ताकि edge nodes पुरानी फ़ाइल परोसना बंद कर दें, इससे पहले कि browser उसे देखे भी।
Favicon caching FAQ
मेरा favicon update क्यों नहीं होगा?
Browser अपने अलग favicon store से एक cached प्रति परोस रहा है, या एक CDN पुरानी फ़ाइल बाँट रहा है। आइकन URL को एक version query string से बदलें और एक private window में hard-refresh करें।
मैं favicon cache कैसे साफ़ करूँ?
कोई भरोसेमंद प्रति-आइकन clear button नहीं है, इसलिए इसके बजाय URL बदलें (/favicon.ico?v=2), जो cache को पूरी तरह दरकिनार कर देता है। ऐसा न कर पाने पर, एक private window या एक अलग browser profile के पास कोई संग्रहीत आइकन नहीं होता।
क्या favicon caching browsers के बीच अलग होती है?
हाँ। हर browser, और अक्सर हर profile, अपना favicon store अपने lifetime के साथ रखता है, इसीलिए एक आइकन एक ही समय पर एक browser में updated और दूसरे में बासी दिख सकता है।