2008-11-04 7 views
107

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

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

उत्तर

48

आप विकास सर्वर उपयोग कर रहे हैं का पालन करें सेटअप करने के लिए django project's how-to guide for managing static files अपने यूआरएल, तो टेम्पलेट में आप मीडिया फ़ाइलों का संदर्भ - जैसे, /site_media/images/foo.gif से एक छवि फ़ोल्डर के अंदर एक छवि।

+24

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

+3

@ सैम एक महान बिंदु है। मैं अपने जीवन के लिए स्थैतिक फाइलों को समझ नहीं पाया। फिर, django संस्करण स्थापित, और voila बदलें। यह सचमुच मुझे बस इतना करना था क्योंकि स्पष्ट रूप से मैं गलत संस्करण के लिए दस्तावेज़ देख रहा था। –

12

क्या सेटिंग्स मैं बनाने के लिए Django सीएसएस फ़ाइल देखें क्या करना चाहिए पर?

कोई नहीं।

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

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

+2

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

36

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

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

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

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

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

+0

@ क्रिस: आप सही हैं, कथन थोड़ा संदिग्ध था। मैं Django विकास सर्वर का जिक्र कर रहा था। यद्यपि मैंने इसे अपनी उत्पादन साइट पर कुछ बार चलाया है, लेकिन यह केवल थोड़े समय के लिए था, जबकि ग्रेनरी समस्याओं को डीबग करना था। –

+0

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

0

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

लेकिन यह AJAX की तरह थोड़ा है, मुझे कुछ भी नहीं मिला जो बताता है कि इसे मानक तरीके से कैसे शामिल किया जाए।

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

8

आधिकारिक django दस्तावेज़ों ने मेरी मदद नहीं की। आशा है कि ब्लॉग पोस्ट "Django: How to serve static files" आप में से कुछ को मदद करता है।

13

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

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/' 

बेशक, जैसा कि ऊपर कहा, आप ठीक ढंग से अपने html से शामिल सीएसएस फ़ाइल की आवश्यकता है (सुनिश्चित करें कि आप STATIC_URL में ऊपर अग्रणी है / बनाने), फ़ाइलें। मेरे पास था:

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

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

+0

# हमेशा विंडोज़ पर भी आगे की स्लैश का उपयोग करें। '। जगह ('\\', '/') 'अनावश्यक है। – mak

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