मैं Django में CSS का उपयोग कैसे करूं?


110

मैं Django का उपयोग करके अपना एप्लिकेशन बना रहा हूं, और सोच रहा हूं कि मैं Django को अपनी CSS फ़ाइल का उपयोग कैसे कर सकता हूं? Django को css फ़ाइल देखने के लिए मुझे किन सेटिंग्स की आवश्यकता होगी?

एनबी: एक स्थानीय मशीन पर

जवाबों:


48

यदि आप डेवलपमेंट सर्वर का उपयोग कर रहे हैं तो अपने URL के सेटअप के लिए स्टेटिक फाइल्स को मैनेज करने के लिए django प्रोजेक्ट का कैसे-कैसे मार्गदर्शन करें, इसके लिए आप टेम्पलेट में मीडिया फ़ाइलों का संदर्भ दें - जैसे कि, इमेज फोल्डर के अंदर की इमेज /site_media/images/foo.gif


25
उन Django डॉक्स पर बस एक त्वरित नोट - सुनिश्चित करें कि आप Django के संस्करण के लिए दस्तावेजों का चयन कर रहे हैं जिसका आप उपयोग कर रहे हैं। स्थिर फ़ाइलों के संबंध में संस्करण के बीच चीजें बहुत बदल गई हैं।
सैम स्टारिंग

3
@ सॅम के पास एक बेहतरीन बिंदु है। मैं मेरे जीवन के लिए स्थिर फ़ाइलों का पता नहीं लगा सका। फिर, स्थापित django संस्करण और वॉइला को बदलें। सचमुच यह सब मुझे करना था क्योंकि जाहिरा तौर पर मैं गलत संस्करण के लिए डॉक्स देख रहा था।
जोश ब्राउन

36

अधिक आम तौर पर कहा जाता है, आप पूछ रहे हैं कि कैसे Django से एक स्थिर फ़ाइल परोसें यदि आप अपाचे के नीचे चल रहे हैं, तो आपको http://docs.djangoproject.com/en/dev/howto/deployment/modpython/ पढ़ना चाहिए

यदि आप विकास सर्वर (अपने लैपटॉप पर कहते हैं) चला रहे हैं, तो http://docs.djangoproject.com/en/dev/howto/static-files/ पढ़ें

Django विकास सर्वर के बारे में बड़ा, मोटा अस्वीकरण नोट करें:

  • इस सर्वर का उपयोग करना अक्षम और असुरक्षित है।
  • उत्पादन सेटिंग में इसका उपयोग न करें।
  • यह केवल विकास के लिए उपयोग करें।

"उत्पादन सेटिंग में इसका उपयोग न करें।" क्या आपको इस पर विस्तार करने का मन है?
क्रिस

@ क्रिस: आप सही कह रहे हैं, बयान थोड़ा अस्पष्ट था। मैं Django विकास सर्वर की बात कर रहा था। हालाँकि मैंने इसे अपने प्रोडक्शन साइट पर कुछ समय के लिए चलाया है, लेकिन यह केवल कुछ समय के लिए ही था, जब इस समस्या को हल किया।
16:30 पर पीटर रोवेल जूल

स्पष्टीकरण के लिए धन्यवाद, मैं अपने django तैनाती देख रहा था अपाचे पर चल रहा है सोच रहा था कि मैंने क्या गलत किया। :)
क्रिस

1
अच्छा लगा। मुझे अलग-अलग तरीकों से एक ही बात कहने वाले 3 आइटम पसंद हैं। चेतावनी के लिए धन्यवाद।
कोबजोहन

13
मैं उन लोगों से बिल्कुल प्यार करता हूं जो एक उत्तर के बाद 4.5 साल बाद आते हैं और इसे वोट करते हैं। मुझे आश्चर्य है कि अगर वे यह भी जानते थे कि 11/08 में Django क्या था ... शायद नहीं। यह प्रतिनिधि अंक है कि मेरे पास नहीं है, यह होने का सिर्फ एक संकेत के साथ अज्ञानता और अहंकार का दिखाया गया है संयोजन है waaay पार्टी के लिए देर से। मुझे आश्चर्य है कि वे मेरे पोस्ट को comp.lang.c में कैसे रेट करेंगे, ओह, आइए बताते हैं, 1987? पूछने के लिए बेहतर नहीं है।
पीटर रोवेल

13

इससे मुझे कुछ समय के लिए समस्या हुई (404 त्रुटियां नहीं मिलीं)। मेरे लिए गायब सा था STATICFILES_DIRSमुझे यह देने के लिए settings.py में tuple को संपादित करना था :

STATICFILES_DIRS = (
    # Put strings here, like "/home/html/static" or "C:/www/django/static".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__),'media').replace('\\','/'),
)

इसके बाद 'सीएसएस' नामक एक फोल्डर में मेरी सीएसएस फाइलें उठाईं जो कि मेरे django प्रोजेक्ट के शीर्ष स्तर पर थीं।

मेरे पास भी था:

MEDIA_ROOT = ''
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/media/'

(सुनिश्चित करें कि आपके पास /ऊपर है STATIC_URL)

बेशक, जैसा कि ऊपर कहा गया है, आपको अपनी HTML फ़ाइलों से CSS फ़ाइल को ठीक से शामिल करने की आवश्यकता है। मैं था:

<link href="{{ STATIC_URL }}css/ea_base.css" rel="stylesheet" type="text/css" media="screen" />

अंत में, एक स्पष्ट, सरल और सुरुचिपूर्ण समाधान। Django 1.5 के साथ ठीक काम करता है।
पर्बेल

# हमेशा फॉरवर्ड स्लैश का उपयोग करें, यहां तक ​​कि विंडोज पर भी। .replace('\\','/')अनावश्यक है।
mak

12

Django को css फ़ाइल देखने के लिए मुझे किन सेटिंग्स की आवश्यकता होगी?

कोई नहीं।

सुनिश्चित करें कि आपके टेम्पलेट में CSS फ़ाइल शामिल है (जैसा कि मानक HTML करता है) और CSS फ़ाइल को मीडिया सर्वर पर डालें।

स्पष्ट करने के लिए: Django के साथ यह अत्यधिक अनुशंसा की जाती है कि आप एक अलग सर्वर उदाहरण से अपने सभी मीडिया (सब कुछ जो गतिशील HTML नहीं है) की सेवा करें। आप कैसे लागू करते हैं जो पूरी तरह से आप पर निर्भर है लेकिन ज्यादातर लोग एक उपडोमेन बनाते हैं।


2
हाय, ओली। मुझे पता है कि यह पोस्ट 3 साल की उम्र के करीब है, लेकिन क्या यह अभी भी सीएसएस को django टेम्प्लेट से जोड़ने का सबसे अच्छा तरीका है? ऐसा लगता है कि यह सबसे आसान होगा जैसे कि CSS से किसी abs URL को static.example.com लिंक करना सबसे आसान है और इस url पर सभी स्टैटिक फाइल्स को स्टोर करें।
cp3


0

Django के साथ css का उपयोग करने का सबसे आसान तरीका है, इसे स्टेटिक-फाइल्स के रूप में अपने टेम्प्लेट में जोड़ना।

लेकिन यह अजाक्स की तरह एक सा है, मुझे ऐसा कुछ भी नहीं मिला जो बताता है कि इसे मानक तरीके से कैसे शामिल किया जाए।

यदि आप इसके आकार का अनुकूलन करना चाहते हैं तो django के लिए एक सीएसएस-कंप्रेसर मॉड्यूल है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.