2012-11-29 9 views
21

Django 1.5 के बाद से, https://docs.djangoproject.com/en/1.5/releases/1.5/#miscellaneousउपयुक्त तरीका

टेम्पलेट टैग पुस्तकालय adminmedia है, जो केवल पदावनत टेम्पलेट टैग {% admin_media_prefix%} निहित, हटा दिया गया था। इसे {% load adminmedia%} से लोड करने का प्रयास विफल हो जाएगा। यदि आपके टेम्पलेट्स में अभी भी उस पंक्ति को शामिल किया गया है तो आपको इसे हटाना होगा।

तो क्या है यह उचित तरीका कोड लीगेसी लाइब्रेरी और मेरी विरासत परियोजनाओं जो अभी भी {% load adminmedia %} उपयोग करता है और लोड की तरह CSS में पाया बदल देते हैं: -

<link rel="stylesheet" type="text/css" href="{% load adminmedia %}{% admin_media_prefix %}css/login.css"> 

?

उत्तर

22

Django 1.3 के बाद से आप django.contrib.staticfiles ऐप का उपयोग कर सकते हैं।

सुनिश्चित करें कि django.contrib.staticfiles आपके INSTALLED_APPS में शामिल है और STATIC_ROOT और STATIC_URL विकल्प आपकी सेटिंग्स.py में निर्दिष्ट हैं।

फिर manage.py collectstatic आदेश चलाएं और सभी अनुप्रयोगों की स्थैतिक फ़ाइलें STATIC_ROOT फ़ोल्डर में एकत्र की जाएंगी।

टेम्पलेट्स में आप {{ STATIC_URL }} संदर्भ चर (सुनिश्चित करें कि django.core.context_processors.static TEMPLATE_CONTEXT_PROCESSORS में शामिल है) या {% static %} टेम्पलेट टैग का उपयोग कर सकते हैं।

<link href="{{ STATIC_URL }}admin/css/login.css" rel="stylesheet"> 

या

{% load staticfiles %} 
<link href="{% static 'admin/css/login.css' %}" rel="stylesheet"> 
+0

मैं STATIC_PATH के लिये दस्तावेज के बारे में देख रहा हूँ और कुछ भी नहीं देख सकते हैं, कि STATIC_ROOT होना चाहिए (मैं STATIC_ROOT कॉन्फ़िगर और manage.py collectstatic के रूप में एंटोन द्वारा पहले से सुझाव दिया चलाने की जरूरत नहीं थी)? –

+0

@wobbily_col आप STATIC_ROOT के बारे में सही हैं, मैंने इस उत्तर के लिए एक संपादन सबमिट किया है (सहकर्मी समीक्षा की प्रतीक्षा कर रहा है)। –

+0

उन फ़ाइलों को अपने स्वयं के प्रोजेक्ट में वास्तव में अनुशंसित समाधान में खींच रहा है? यह एक हैक की तरह लगता है। – knipknap

4

मैं बस की नकल की क्या base.css में बताया गया है:

{% load admin_static %} 

और फिर

<link href="{% static 'admin/css/base.css' %}" rel="stylesheet"> 

(जो कुछ भी आप की जरूरत के साथ base.css की जगह,की तरहआपके मामले में)

सुनिश्चित करें कि आपके INSTALLED_APPS में django.contrib.staticfiles है।

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