URL निर्देशिकाओं और फ़ाइल नामों से बने होते हैं। कुछ भी जो /
. से पहले आता है निर्देशिका मानी जाती है। अंतिम /
. के बाद कुछ भी फ़ाइल नाम है। आपकी समस्या यह है कि आप सापेक्ष URL का उपयोग कर रहे हैं। जब आप कहते हैं
static/pics/gamma.png
आपका ब्राउज़र वर्तमान पृष्ठ की निर्देशिका के सापेक्ष उस फ़ाइल के लिए अनुरोध करता है। /
. जैसे URL के मामले में और /shop
, निर्देशिका है /
. ब्राउज़र /static/pics/gamma.png
. का अनुरोध करेगा .
/shop/item/1
. जैसे URL के मामले में , निर्देशिका है /shop/item/
. फिर आपका ब्राउज़र /shop/item/static/pics/gamma.png
का अनुरोध करेगा .
चूंकि आपके URL पहले वाले URL से मेल खाते हैं, इसलिए आपको उन्हें निरपेक्ष URL के रूप में संग्रहीत करना चाहिए (अग्रणी /
. के साथ ) ताकि ब्राउज़र सही अनुरोध करे।
अर्ध-संबंधित नोट पर, आपको url_for
. का उपयोग करना चाहिए जब भी संभव हो।
url_for('static', filename='css/home.css')