2013-05-03 5 views
51

के साथ फ्लास्क स्थैतिक फ़ाइलों से लिंक करें फ़ोल्डर में किसी फ़ाइल को संदर्भित करने के लिए आप फ्लास्क में url_for का उपयोग कैसे करते हैं? उदाहरण के लिए, मेरे पास static फ़ोल्डर में कुछ स्थिर फ़ाइलें हैं, जिनमें से कुछ static/bootstrap जैसे उपफोल्डर्स में हो सकती हैं।url_for

जब मैं static/bootstrap से एक फ़ाइल की सेवा करने के लिए प्रयास करें, मैं कोई त्रुटि मिलती है।

<link rel=stylesheet type=text/css href="{{ url_for('static/bootstrap', filename='bootstrap.min.css') }}"> 

मैं उन फ़ाइलों का संदर्भ दे सकता हूं जो इसके साथ उपफोल्डर्स में नहीं हैं, जो काम करता है।

<link rel=stylesheet type=text/css href="{{ url_for('static', filename='bootstrap.min.css') }}"> 

url_for के साथ स्थिर फ़ाइलों को संदर्भित करने का सही तरीका क्या है? किसी भी स्तर पर स्थैतिक फ़ाइलों को यूआरएल उत्पन्न करने के लिए मैं url_for का उपयोग कैसे करूं?

उत्तर

105

आप डिफ़ॉल्ट static endpoint स्थिर फ़ाइलों के लिए से की है। इसके अलावा Flask एप्लिकेशन में निम्नलिखित तर्क हैं:

static_url_path: वेब पर स्थिर फ़ाइलों के लिए एक अलग पथ निर्दिष्ट करने के लिए उपयोग किया जा सकता है। static_folder फ़ोल्डर के नाम पर डिफ़ॉल्ट।

static_folder: स्थैतिक फ़ाइलों वाले फ़ोल्डर को static_url_path पर परोसा जाना चाहिए। एप्लिकेशन के रूट पथ में 'स्थिर' फ़ोल्डर के लिए डिफ़ॉल्ट।

इसका मतलब है कि filename तर्क static_folder में अपनी फ़ाइल को एक रिश्तेदार पथ लेने के लिए और यह एक रिश्तेदार पथ static_url_default के साथ संयुक्त करने के लिए परिवर्तित कर देंगे:

url_for('static', filename='path/to/file') 

url पथ static_url_default/path/to/file को static_folder/path/to/file से फ़ाइल पथ परिवर्तित कर देंगे ।

<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='bootstrap/bootstrap.min.css') }}"> 

कौन सा (डिफ़ॉल्ट सेटिंग का उपयोग) में परिवर्तित हो जाएगा:

<link rel="stylesheet" type="text/css" href="static/bootstrap/bootstrap.min.css"> 

इसके अलावा url_for documentation पर देखने

तो तुम static/bootstrap फ़ोल्डर से फाइल प्राप्त करना चाहते हैं यदि आप इस कोड का उपयोग करें।

संबंधित मुद्दे