2011-02-16 12 views
53

मैं Django 1.3 पर जा रहा हूं और मीडिया और स्थैतिक फ़ाइलों को इस भ्रम को थोड़ा उलझन में ढूंढ रहा हूं। यहाँ कैसे डिफ़ॉल्ट settings.py की तरह लग रहा है:Django में स्थिर फ़ाइलों और मीडिया फ़ाइलों के बीच क्या अंतर है?

# Absolute filesystem path to the directory that will hold user-uploaded files. 
# Example: "/home/media/media.lawrence.com/media/" 
MEDIA_ROOT = '' 

# URL that handles the media served from MEDIA_ROOT. Make sure to use a 
# trailing slash if there is a path component (optional in other cases). 
# Examples: "http://media.lawrence.com/media/", "http://example.com/media/" 
MEDIA_URL = '' 

# Absolute path to the directory that holds static files. 
# Example: "/home/media/media.lawrence.com/static/" 
STATIC_ROOT = '' 

# URL that handles the static files served from STATIC_ROOT. 
# Example: "http://media.lawrence.com/static/" 
STATIC_URL = '/static/' 

मैं MEDIA_ROOT और एक STATIC_ROOT में क्या रखना चाहिए? क्या वे अलग निर्देशिका होनी चाहिए? अंतर क्या है?

+0

इस पोस्ट को https://groups.google.com/forum/#!topic/django-users/tSb4EC0G040 – laike9m

उत्तर

49

स्टेटिक फ़ाइलें जावास्क्रिप्ट/छवियों आदि के लिए हैं, लेकिन मीडिया फ़ाइलों को उपयोगकर्ता के अपलोड की गई सामग्री के लिए कर रहे हैं।

+0

उन ऐप्स के बारे में क्या है जो अभी भी मीडिया में अपनी सामग्री संग्रहीत करते हैं। उदाहरण के लिए contrib.admin। क्या मुझे अपने प्रोजेक्ट मीडिया फ़ोल्डर या स्थैतिक फ़ोल्डर में सिमलिंक करना चाहिए? क्योंकि आपके जवाब के मुताबिक उन फाइलें स्थिर हैं। – darren

+0

@mongoose_za - व्यवस्थापक ऐप में अब एक स्थिर फ़ोल्डर है और अब मीडिया का उपयोग नहीं करता है। यदि आप staticfiles ऐप का उपयोग करते हैं तो अब आपको व्यवस्थापक की मीडिया फ़ाइलों को सिमलिंक करने की आवश्यकता नहीं है। –

29

रूप Uku Loskit कहा, स्टैटिक फ़ाइलें मीडिया फ़ाइलें आमतौर पर उपयोगकर्ता या व्यवस्थापक अपलोड फ़ाइलें हैं अपने अनुप्रयोगों 'सीएसएस फ़ाइलें, जावास्क्रिप्ट फ़ाइलें, चित्र, आदि जैसी चीजों के लिए कर रहे हैं।

आम तौर पर आप अलग निर्देशिका होने के लिए MEDIA_ROOT और STATIC_ROOT चाहते हैं। ध्यान रखें कि STATIC_ROOT वह जगह है जहां प्रबंधन कमांड collectstatic यह सभी स्थिर फाइलें पायेगा। उत्पादन में, STATIC_URL से शुरू होने वाले अनुरोध के बाद, आप STATIC_ROOT से फ़ाइलों की सेवा के लिए अपने वेबसर्वर को कॉन्फ़िगर करते हैं। यदि आप विकास के लिए Django devserver का उपयोग कर रहे हैं, तो यह स्वचालित रूप से स्थिर फ़ाइलों की सेवा करेगा।

StaticFiles आवेदन इस प्रकार आवेदन मीडिया से उपयोगकर्ता अपलोड किए गए मीडिया disentangles, इस प्रकार तैनाती, बैकअप, और संस्करण नियंत्रण आसान बना। Staticfiles ऐप से पहले, डेवलपर्स के लिए स्थिर अनुप्रयोग संपत्तियों के साथ मीडिया फ़ाइलों को मिश्रित करना आम बात थी।

StaticFiles के लिए 1.3 डॉक्स है में लगातार सुधार किया गया; अधिक जानकारी के लिए, how-to देखें।

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