पृष्ठभूमि
मैं दो सरल-मुक्त वेबसाइटों के लिए एक बहुत ही सरल CGI- आधारित (पर्ल) सामग्री प्रबंधन टूल का लेखन और उपयोग कर रहा हूं। यह उन स्थानों के लिए HTML फ़ॉर्म के साथ वेबसाइट व्यवस्थापक प्रदान करता है जहां वे फ़ील्ड (दिनांक, स्थान, शीर्षक, विवरण, लिंक, आदि) भरते हैं और इसे सहेजते हैं। उस फॉर्म पर मैं व्यवस्थापक को ईवेंट से संबंधित एक छवि अपलोड करने की अनुमति देता हूं। प्रपत्र प्रदर्शित करने वाले HTML पृष्ठ पर, मैं अपलोड की गई तस्वीर (HTML img टैग) का पूर्वावलोकन भी दिखा रहा हूं।
समस्या
समस्या तब होती है जब व्यवस्थापक चित्र को बदलना चाहता है। उसे बस "ब्राउज" बटन को हिट करना होगा, एक नई तस्वीर चुननी होगी और ओके दबाना होगा। और यह ठीक काम करता है।
एक बार छवि अपलोड होने के बाद, मेरा बैक-एंड CGI अपलोड को हैंडल करता है और फॉर्म को ठीक से लोड करता है।
समस्या यह है कि दिखाई गई छवि ताज़ा नहीं होती है । पुरानी छवि अभी भी दिखाई गई है, भले ही डेटाबेस सही छवि रखता है। मैंने इसे इस तथ्य तक सीमित कर दिया है कि वेब ब्राउज़र में IMAGE IS CACHED है। यदि व्यवस्थापक फ़ायरफ़ॉक्स / एक्सप्लोरर / सफारी में RELOAD बटन दबाता है, तो सब कुछ ठीक हो जाता है और नई छवि बस दिखाई देती है।
मेरा समाधान - काम नहीं कर रहा
मैं अतीत में बहुत दूर की तारीख के साथ एक HTTP एक्सपायर इंस्ट्रक्शन लिखकर कैश को नियंत्रित करने की कोशिश कर रहा हूं।
Expires: Mon, 15 Sep 2003 1:00:00 GMT
याद रखें कि मैं प्रशासनिक पक्ष में हूं और मुझे वास्तव में परवाह नहीं है यदि पृष्ठ लोड होने में थोड़ा अधिक समय लेते हैं क्योंकि वे हमेशा समाप्त हो जाते हैं।
लेकिन, यह भी काम नहीं करता है।
टिप्पणियाँ
छवि अपलोड करते समय, डेटाबेस में इसका फ़ाइल नाम नहीं रखा जाता है। इसका नाम बदलकर Image.jpg रखा गया है ( इसका उपयोग करते समय केवल चीजों को बाहर निकालने के लिए)। मौजूदा छवि को नए के साथ बदलने पर, नाम या तो नहीं बदलता है। बस छवि फ़ाइल की सामग्री बदल जाती है।
वेबसर्वर होस्टिंग सेवा / आईएसपी द्वारा प्रदान किया जाता है। यह अपाचे का उपयोग करता है।
सवाल
क्या वेब ब्राउज़र को इस पृष्ठ से चीजों को कैश नहीं करने के लिए मजबूर करने का एक तरीका है, यहां तक कि छवियां भी नहीं?
मैं डेटाबेस के साथ वास्तव में "फ़ाइल नाम को बचाने" के विकल्प के साथ मजाक कर रहा हूं। इस तरह, यदि छवि को बदल दिया जाता है, तो IMG टैग का src भी बदल जाएगा। हालाँकि, इसके लिए संपूर्ण साइट में बहुत सारे बदलावों की आवश्यकता होती है और यदि मेरे पास बेहतर समाधान है तो मैं इसे नहीं करता। इसके अलावा, यह तब भी काम नहीं करेगा जब अपलोड की गई नई छवि का नाम एक ही हो (मान लीजिए कि फ़ोटो को थोड़ा सा फ़ोटोशॉप किया गया है और पुनः अपलोड किया गया है)।