2011-12-02 11 views
10

मेरे पास एक टेम्पलेट है, base.html, जिसका उपयोग विभिन्न विचारों के लिए कई अन्य टेम्पलेट्स में किया जाता है। उनमें से प्रत्येक टेम्पलेट उचित {% extends "base.html" %} के साथ शुरू होता है। ,,STATIC_URL आधार Django टेम्पलेट में अपरिभाषित

<link rel="stylesheet" type="text/css" href="{{ STATIC_URL }}/base.css"/> 

हालांकि जब यह renders मेरे टेम्पलेट के अधिकांश, STATIC_URL का मान रिक्त है तो विशेषता केवल href="/base.css" है, जो लोड नहीं करता है: आधार टेम्पलेट में, मैं thusly एक स्थिर स्टाइलशीट निर्दिष्ट करना चाहते हैं । परिवर्तनीय टेम्पलेट के लिए ठीक से परिभाषित किया गया है जिसे मैंने डिफ़ॉल्ट लॉगिन दृश्य, django.contrib.auth.views.login से बंधे हैं, लेकिन मेरे अपने कस्टम विचारों के लिए, यह अपरिभाषित है।

मैं सिर्फ runserver के साथ विकास वातावरण में काम करने की कोशिश कर रहा हूं, इसलिए सीएसएस फ़ाइल ऐप की स्थिर उपनिर्देशिका में है।

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

# 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. 
) 

# List of finder classes that know how to find static files in 
# various locations. 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
# 'django.contrib.staticfiles.finders.DefaultStorageFinder', 
) 

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.debug', 
    'django.core.context_processors.i18n', 
    'django.core.context_processors.media', 
    'django.core.context_processors.static', 
    'django.contrib.auth.context_processors.auth', 
    'django.contrib.messages.context_processors.messages', 
) 

मेरे urls.py मैं भी जोड़ लिया है::

from django.contrib.staticfiles.urls import staticfiles_urlpatterns 

#... 

urlpatterns += staticfiles_urlpatterns() 

कोई भी विचार क्या मैं गलत कर रहा हूँ

यहाँ मेरी settings.py से प्रासंगिक बिट है, जो सभी चूक कर रहे हैं? जहां तक ​​मैं यह कह सकता हूं कि the 1.3 documentation पर आधारित, विकास में ऐप-विशिष्ट स्थैतिक फ़ाइलों की सेवा के लिए आपको क्या करना है।

उत्तर

21

शायद यह मदद कर सकते हैं:

{{STATIC_URL}} अपने खाके में काम नहीं कर रहा, तो आप शायद RequestContext का उपयोग नहीं जब template.As एक संक्षिप्त पुनश्चर्या, संदर्भ प्रोसेसर प्रतिपादन कर रहे हैं प्रत्येक टेम्पलेट के संदर्भों में चर जोड़ें। हालांकि, संदर्भ प्रोसेसर की आवश्यकता है कि आप टेम्पलेट्स को रेंडर करते समय RequestContext का उपयोग करें। यह स्वचालित रूप से होता है यदि आप एक सामान्य दृश्य का उपयोग कर रहे हैं, लेकिन हाथ से लिखे गए विचारों में आपको की आवश्यकता होगी ताकि यह सुनिश्चित किया जा सके कि यह कैसे काम करता है और अधिक जानकारी पढ़ने के लिए, सबक्लासिंग संदर्भ देखें: RequestContext।

+2

इससे मुझे सही दिशा में ले जाया गया। (आपके द्वारा उद्धृत अनुभाग [यहां] है (https://docs.djangoproject.com/en/dev/ref/templates/api/#subclassing-context-requestcontext)) मैं 'render_to_response' को 'context_instance = RequestContext (अनुरोध) '। – UltraNurd

+0

अच्छा! आपकी मदद करने में प्रसन्नता;) – danihp

+2

यदि आप Django 1.3 का उपयोग कर रहे हैं, तो आपको context_instance में मैन्युअल रूप से पास करने की आवश्यकता नहीं है। रेंडर शॉर्टकट आपके लिए ऐसा करेगा: वापसी प्रस्तुत करें (अनुरोध, 'the-template.html', {'foo': 'bar'}) – Brandon

0

आपको अपने TEMPLATE_CONTEXT_PROCESSORS में 'django.core.context_processors.request' जोड़ने की आवश्यकता है।

+0

ऐसा लगता है कि कुछ भी नहीं बदला है। – UltraNurd

0

तुम बस करने के लिए

{'STATIC_URL': settings.STATIC_URL} 

पास करके प्रतिपादन टेम्पलेट STATIC_URL जोड़ सकते हैं या स्थिर संदर्भ प्रोसेसर देख doc

+0

मेरे पास स्थिर संदर्भ प्रोसेसर है, लेकिन वह अकेला काम नहीं कर रहा था। – UltraNurd

15

जोड़ सकते हैं आप 'django.core.context_processors.static' जोड़ने की जरूरत settings.py में आपके TEMPLATE_CONTEXT_PROCESSORS चर में।

+0

आपको बहुत धन्यवाद, @nicolas! – benesch

+0

मेरे मामले में मैंने TEMPLATE_CONTEXT_PROCESSORS को नहीं जोड़ा था, भले ही मैं क्लास आधारित जेनेरिक टेम्पलेट व्यू का उपयोग कर रहा था जो RequestContext का उपयोग करता है, मुझे अपने संदर्भ प्रोसेसर में इसकी आवश्यकता होती है जैसा कि आपने {{STATIC_URL}} भरने के लिए समझाया है – harijay

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