2009-07-02 18 views
20

मैं एक Django एप्लिकेशन बनाने रहा हूँ और मैं सीएसएस फ़ाइलें देखने के लिए टेम्पलेट्स नहीं मिल सकता है ... मेरी settings.py फ़ाइल की तरह दिखता है:Django टेम्पलेट सीएसएस फ़ाइलें नहीं देख सकते हैं

MEDIA_ROOT = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'media') 
MEDIA_URL = '/media/' 

मैं 'में/mysite सीएसएस फ़ाइलें मिल गया है/मीडिया/सीएसएस/और टेम्पलेट कोड में शामिल हैं:

<link rel="stylesheet" type="text/css" href="/media/css/site_base.css" />` 

तो, url.py फ़ाइल में मेरे पास है:

# DEVELOPMENT ONLY 
(r'^media/(?P<path>.*)$', 'django.views.static.serve', 
    {'document_root': '/media'}), 

लेकिन विकास सेवा ver सादा एचटीएमएल (शैलियों के बिना) परोसता है। मैं क्या गलत कर रहा हूं?

-

ठीक है - मैं इसे आप लोगों ने क्या कहा है के आधार पर कार्य मिला है। जवाब है:

settings.py:

MEDIA_ROOT = 'd://web//mysite//media//' #absolute path to media 
MEDIA_URL = '/mymedia/' #because admin already using /media 

site_base.html:

<link rel="stylesheet" type="text/css" href="/mymedia/css/site_base.css" /> 

urls.py

from mysite import settings 
if settings.DEBUG: 
    urlpatterns += patterns('', 
     (r'^mymedia/(?P<path>.*)$', 'django.views.static.serve', 
     {'document_root':  settings.MEDIA_ROOT}), 
    ) 

और देखा! यह काम करता हैं।

+1

ठीक है ... मेरे unstuck पाने में मदद के लिए वोट दें लेकिन ... वहाँ ** '/ मीडिया /' के अंदर कोई ** '/ mymedia /' निर्देशिका नहीं है ...तो, इसे 'href' में कैसे आवश्यकता है? यह कहां देख रहा है – Droogans

उत्तर

13
"केवल विकास" अपने urls.py में ब्लॉक आप

(r'^media/(?P<path>.*)$', 'django.views.static.serve', 
    {'document_root': '/media'}), 

को बदलने की जरूरत है में

...

(r'^media/(?P<path>.*)$', 'django.views.static.serve', 
    {'document_root': settings.MEDIA_ROOT}), 
0

मैं एक ऐसी ही समस्या है जब मैं jQuery पाने के लिए कोशिश कर रहा था था काम करने के लिए। मेरा फिक्स मेरी अपाचे httpd.conf फ़ाइल में उपनाम जोड़ना था जो .js वाले फ़ोल्डर को इंगित करता था। आप अपने सीएसएस फ़ोल्डर के साथ ऐसा ही कर सकते हैं।

2

देव सर्वर पर, मैं धोखा और निम्न मेरी urls.py

if settings.DEBUG: 
    urlpatterns += patterns('', 
     (r'^includes/(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/path/to/static/files'}), 
    ) 

में "/ शामिल" के अंतर्गत परियोजना में इस तरह कुछ भी डाल चाहते फ़ोल्डर डेव सर्वर द्वारा सर्वर है। आप इसे "/ मीडिया" में बदल सकते हैं।

5

ADMIN_MEDIA_PREFIX डिफ़ॉल्ट रूप से \media\ पर सेट है, और शायद पथ को 'चोरी' कर रहा है। उस सेटिंग को बदलें, या गैर-व्यवस्थापक मीडिया के लिए एक अलग का उपयोग करें - उदाहरण के लिए site_media या assets

+0

धन्यवाद डैनियल! मैं पहले से ही अपने बालों को खींच रहा था! यह पहली बार नहीं है कि मैंने django प्रश्नों के आपके उत्तर बहुत उपयोगी पाया, इसलिए मुझे लगता है कि यह सिर्फ एक बड़ा धन्यवाद है। – Paul

1

यह मेरे लिए भी काम करता है, धन्यवाद दोस्तों !!

settings.py

MEDIA_ROOT = '/home/pi/ewspaces/ws-classic/xima/media' 

MEDIA_URL = '/statics/' 

urls.py

if settings.DEBUG: 
urlpatterns += patterns('', 
    (r'^statics/(?P<path>.*)$', 'django.views.static.serve', 
    {'document_root':  settings.MEDIA_ROOT}), 
) 

अंदर टेम्पलेट्स:

<link type="text/css" href="/statics/css/base/jquery.ui.all.css" rel="stylesheet" /> 
+0

यह मेरे लिए भी काम करता है लेकिन मुझे आश्चर्य है कि जब मैं वेब पर प्रोजेक्ट तैनात करता हूं तो मुझे क्या बदलने की ज़रूरत है। –

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