2011-08-30 14 views
31

मैं नए collectstatic कमांड के साथ गड़बड़ कर रहा हूं और इसे अपने सामान्य पृष्ठों के लिए काम कर रहा है। यही कहना है, मैं इस स्थान पर http://localhost:8000/static/css/main.css पर अपना सीएसएस लोड करने में सक्षम हूं। हालांकि, मेरे django व्यवस्थापक के लिए सीएसएस दिखाना प्रतीत नहीं होता है।Django Admin CSS अनुपलब्ध

जब मैं http://localhost:8000/static/admin/css/base.css पर व्यवस्थापक सीएसएस स्थान पर नेविगेट करता हूं, तो मुझे निम्न त्रुटि के साथ 404 पृष्ठ नहीं मिला है: /home/nai/GitProjects/cats/django-trunk/django/contrib/admin/media/css/base.css" does not exist। Django-trunk में देखकर, मेरे पास शुरू होने के लिए /home/nai/GitProjects/cats/django-trunk/django/contrib/admin/media/ फ़ोल्डर नहीं था।

क्या यह अजीब है?

किसी भी मामले में, मेरे स्थिर फ़ोल्डर में, साथ में सीएसएस, आईएमजी और जेएस फ़ोल्डरों के साथ एक व्यवस्थापक फ़ोल्डर होता है जो कि जब मैं एकत्रित होता हूं और base.css का यूआरएल उस स्थान पर इंगित करता है।

यह मेरे django विकास सर्वर पर हो रहा है।

यूआरएल

33 # In order for Dev Server to serve media files for the frontend site. 
34 urlpatterns += staticfiles_urlpatterns() 
35 
36 try: 
37  if settings.DEBUG: # defined in manage.py when the first arg is "runserver" 
38   urlpatterns += patterns('', 
39   (r'^media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}), 
40   (r'^media-admin/(?P<path>.*)$', 'django.views.static.serve',{'document_root': os.path.join(settings.MEDIA_ROOT, '..', settings.ADMIN_MEDIA_PREFIX)}), 
41  ) 
42 except NameError: 
43  pass 

मुझे लगता है कि यह मेरे यूआरएल फ़ाइल में लाइन 40 के साथ कुछ लेकिन स्थिर/व्यवस्थापक फ्लॉप करने के लिए बदल रहा है मीडिया-व्यवस्थापक हो सकता है: यहाँ कुछ के टुकड़े बग शिकार में सहायता करने के हैं मदद।

सेटिंग्स

 58 ADMIN_MEDIA_PREFIX = '/static/admin' 
    69 STATIC_ROOT = os.path.join(os.path.abspath(os.path.join(PROJECT_ROOT, '..', MEDIA_DIR, 'static')), '') 
    70 
    71 # URL prefix for static files. 
    72 # Example: "http://media.lawrence.com/static/" 
     73 STATIC_URL = '/static/' 
    74 
    75 # Additional locations of static files. Global files are stored in here 
    76 STATICFILES_DIRS = (
    77  os.path.join(os.path.abspath(os.path.join(PROJECT_ROOT, '..', 'proj_public', 'static', 'proj')), ''), 
    78 ) 
    79 
+0

बग की तरह निकला कोई अन्य विषय से संबंधित कुछ किया जाना है। कोड के साथ कुछ भी गलत नहीं है क्योंकि यह निकलता है। – super9

+6

क्या आप कृपया समस्या को पोस्ट कर सकते हैं कृपया पोस्ट करें। मैं बिल्कुल एक ही मुद्दे के साथ अटक गया हूँ। –

उत्तर

16

django wsgi के बजाय अन्य वेबसर्वर के साथ स्थैतिक फ़ाइलों को तैनात करने की अनुशंसा करता है।

  1. परिवर्तन settings.py, सेट

    STATIC_ROOT = 'स्थिर'

  2. रन python manage.py collectstatic

    तो यह Django व्यवस्थापक नकल स्थिर filse /path/to/project/static/ को

  3. आप config स्थिर फ़ाइल सर्वर

    अगर आप nginx उपयोग करते हैं, तो आप इस तरह कुछ config जोड़ सकते हैं:

    location /static/ {        
        alias /path/to/project/static/; 
        expires modified +1w;       
    } 
    
  4. पुनः लोड आप अब सर्वर

फ़ाइल, आप आप स्थिर फ़ाइलों तक पहुँच सकते हैं।

2

आप अपने ADMIN_MEDIA_PREFIX सेटिंग में स्लैश की जरूरत है।

बदलें:

ADMIN_MEDIA_PREFIX = '/static/admin/' 
+0

इसके लिए धन्यवाद लेकिन बग कहीं और था जो मेरे विकास पर्यावरण से संबंधित है। – super9

+0

अजीब, व्यवस्थापक टेम्पलेट्स पूरी तरह से बग आउट होंगे (लिंक '{{ADMIN_MEDIA_PREFIX}} सीएसएस/आदि' हैं) यदि मेरे लिए कोई पिछला स्लैश नहीं है। –

26

Django 1.4 में ADMIN_MEDIA_PREFIX मान्य नहीं है। STATIC_URL परिभाषित

  1. settings.py में, django.contrib.staticfilesINSTALLED_APPSsettings.py में

  2. के लिए जोड़ - StaticFiles एप्लिकेशन यह बिना नहीं चलेगा: ये कदम उठाएँ मैं इन कुछ हद तक Django में परिवर्तन हाल के साथ पकड़ने के लिए पीछा किया जा सकता है। runserver का उपयोग करते समय वे जादुई रूप से संभाले जाएंगे, लेकिन जब आप तैनात करेंगे, तो यह एक ऐसा स्थान होना चाहिए जहां ब्राउज़र द्वारा उन संसाधनों को लाया जा सके।

मुझे लगता है कि यह सब कुछ था।

+0

मेरे लिए, बस INSTALLED_APPS (settings.py में) में 'django.contrib.staticfiles' सहित समस्या को हल किया गया है। मेरे पर्यावरण के बारे में बाकी सब कुछ मूल रूप से वही है जो डिफ़ॉल्ट परियोजना django उत्पन्न करता है। – warchinal

16

मैं Django 1.4.3

क्या मेरे लिए काम नहीं किया उपयोग कर रहा हूँ: कोई फर्क नहीं पड़ता कि कितना मैं settings.py में ADMIN_MEDIA_PREFIX संपादित मैं Django व्यवस्थापक पृष्ठों के लिए सृजित HTML में कोई बदलाव नहीं देखा । जब मैं स्रोत देखता हूं तो यह हमेशा /media/admin/base.css कहता है।

मेरे लिए क्या काम किया गया है। /django/contrib/admin/static/ से 'व्यवस्थापक' फ़ोल्डर की प्रतिलिपि बनाई गई और इसे मेरे प्रोजेक्ट 'मीडिया' फ़ोल्डर में चिपकाया

अब यह बहुत अच्छा काम करता है।

+1

त्वरित और गंदे। मेरे लिए भी काम किया। – htmldrum

+9

आप कॉन्फ़िगरेशन फ़ाइल में 'उपनाम/स्थिर/व्यवस्थापक/usr/स्थानीय/lib/python2.7/dist-packages/django/contrib/admin/static/admin' भी जोड़ सकते हैं। – Kinka

+0

किन्का का रास्ता सबसे अच्छा है! धन्यवाद! – spikeyang

0

मैं एक एडब्ल्यूएस उबंटू सर्वर पर अपने डीजेंगो सर्वर को ऑटो-बिल्ड करने के लिए शेफ का उपयोग कर रहा हूं। इस पोस्ट में मदद की है, लेकिन मैं क्या कर को समाप्त कर एक local_setings.py में पैकेज व्यवस्थापक स्थैतिक पृष्ठों के लिए निर्देशिका जोड़ने के लिए किया गया था:

STATICFILES_DIRS = ('/var/lib/geoq/local/lib/python2.7/site-packages/django/contrib/admin/static/',) 
: https://github.com/jaycrossler/geoq-chef-repo/blob/master/cookbooks/geoq/templates/default/local_settings.py.erb#L16

(added to local_settings.py or to settings.py): 

STATICFILES_DIRS = ('<%= node['geoq']['virtualenv']['location'] %>/local/lib/python2.7/site-packages/django/contrib/admin/static/',) 

यह होने local_settings.py में हुई

ध्यान दें, अगर आपके पास पहले से ही आपके STATICFILES_DIRS में अन्य आइटम हैं, तो हो सकता है कि आप इसे ओवरराइट करने के बजाय सूची में शामिल करना चाहें।

-1

settings.py में

STATICFILES_DIRS =( os.path.join(BASE_DIR, 'static'), )

आप सूची का उपयोग करना चाहिए के लिए टपल का उपयोग न करें, इस

STATICFILES_DIRS =[ os.path.join(BASE_DIR, 'static'), ]