2011-08-16 12 views
8

मैं स्थिर संरचना को समझने के लिए कोशिश कर रहा हूँ 1.3 की कोशिश करता django आगे बढ़ाने के लिए:Django स्थिर संरचना

मैं इस संरचना के साथ एक परियोजना है:

Project 
    someapp 
     static 
      someapp 
      css 
      etcetera 
     models.py 
     views.py 
     urls.py 
    urls.py 
    manage.py 
    settings.py 

अब मैं Django व्यवस्थापक के ऊपर लिख करना चाहते हैं .. तो

# Absolute path to the directory static files should be collected to. 
# Don't put anything in this directory yourself; store your static files 
# in apps' "static/" subdirectories and in STATICFILES_DIRS. 
# Example: "/home/media/media.lawrence.com/static/" 
STATIC_ROOT = BASE_PATH+'/static/' 

# URL prefix for static files. 
# Example: "http://media.lawrence.com/static/" 
STATIC_URL = '/static/' 

# URL prefix for admin static files -- CSS, JavaScript and images. 
# Make sure to use a trailing slash. 
# Examples: "http://foo.com/static/admin/", "/static/admin/". 
ADMIN_MEDIA_PREFIX = '/static/admin/' 

# Additional locations of static files 
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. 
) 

अगर मैं manage.py आदेश collectstatic उपयोग करें, यह Colle: मैं settings.py जो मैं नीचे की तरह किया था में इन सेटिंग्स को सेट करने के लिए (basepath वर्तमान निर्देशिका के लिए शॉर्टकट रास्ता है) सीटीएस एक निर्देशिका में सभी स्थैतिक फ़ाइलें (व्यवस्थापक फ़ाइलों सहित) 'स्थिर' के रूप में उम्मीद ... (मुख्य परियोजना dir अंदर),

हालांकि यह सामग्री अभी तक नहीं परोसा जाता है है जब तक मैं जोड़ने कि STATICFILES_DIRS टपल करने के लिए निर्देशिका, हालांकि मुझे STATIC_ROOT निर्देशिका सेटिंग बदलनी है क्योंकि अन्यथा मुझे त्रुटि मिल जाएगी, वे समान नहीं हो सकते हैं ...

मुझे लगता है कि मैं स्पष्ट दिख रहा हूं क्योंकि मुझे इसे काम करने के लिए क्या करना है अनावश्यक लगता है

+1

तो .. क्या आपने निर्देशिकाएं डाली हैं, आपकी फाइलें वास्तव में 'STATIC_DIRS' में संग्रहीत हैं और' STATIC_ROOT' को __empty निर्देशिका__ पर इंगित करती हैं जहां Django स्थिर फाइलें एकत्र कर सकता है? – agf

उत्तर

-5

कैसे के बारे में:

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. 
    STATIC_ROOT, 
) 
+1

कोई भी वास्तव में दोषपूर्ण हिस्सा नहीं है ... अनुचित रूप से कॉन्फ़िगर किया गया: STATICFILES_DIRS सेटिंग में STATIC_ROOT सेटिंग – RoundTripToNowhere

+0

नहीं होनी चाहिए यह स्पष्ट रूप से इस विकल्प के साथ अपवाद उठाता है! –

4

STATICFILES_DIRS एक ऐसी सेटिंग है जिसका उपयोग आप अपनी परियोजना में रहने वाली गैर ऐप-विशिष्ट स्थैतिक फ़ाइलों को घोषित करने के लिए करते हैं। STATIC_ROOT वह स्थान है जहां स्थाई फाइलें एकत्र की जाती हैं।

django's docs से:।।

"आपका परियोजना शायद भी स्थिर संपत्ति किसी विशेष एप्लिकेशन से जुड़ा नहीं है कि STATICFILES_DIRS सेटिंग फाइल सिस्टम निर्देशिका की एक टपल जब स्थिर फ़ाइलें लोड की जांच करने के लिए है होगा यह एक खोज पथ है यह डिफ़ॉल्ट रूप से खाली है। अतिरिक्त पथों की इस सूची को विस्तारित करने के लिए STATICFILES_DIRS दस्तावेज़ देखें। "

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

10

स्थानीय विकास के लिए, settings.py में

Project 
    Project (project directory with settings.py etc..) 
     stylesheets 
    someapp 
    static 
     base.css 
इस के साथ

इस संरचना का प्रयास करें:

import os 
ROOT_PATH = os.path.dirname(__file__) 
STATIC_ROOT = os.path.join(ROOT_PATH, 'static') 
STATIC_URL = '/static/' 
STATICFILES_DIRS = (
    os.path.join(ROOT_PATH, 'stylesheets'), 
) 

python manage.py runserver साथ स्थानीय सर्वर चलाने और http://localhost:8000/static/base.css

करने के लिए जाना आप स्टाइलशीट देखना चाहिए।

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