9

मुझे यकीन नहीं है कि अंतर क्या है, ऐसा लगता है कि वे दोनों काम कर रहे हैं। मैं चारों ओर गुगल गया, और ऐसा लगता है जैसे वे बहुत ज्यादा चीजें हैं। जिज्ञासा से बाहर, जो लोग इस क्षेत्र में उपयोग करते हैं?{% लोड स्थिर%} और {% लोड staticfiles%}: जिसे प्राथमिकता दी जाती है?

मुझे लगता है कि पढ़ने के लिए, लेकिन अभी भी जब जो उपयोग करने के लिए पता नहीं है, और जो क्षेत्र में उपयोग में एक लोग। मेरा दोनों के लिए काम करता है। पहली बार में मैंने सोचा कि यह स्थिर फ़ोल्डर लोड हो रहा है, लेकिन यह StaticFiles के लिए भी काम करता है ... -

+3

संभावित डुप्लिकेट [{% लोड staticfiles%} और {% लोड स्थिर%} के बीच अंतर क्या है] (http://stackoverflow.com/questions/24238496/what-is-the-difference-between-load -staticfiles और लोड स्थैतिक) – dyeray

+1

@dyeray हाँ मुझे लगता है कि पढ़ने के लिए, लेकिन अभी भी जब उपयोग करने के लिए पता नहीं है जो है, और जो क्षेत्र में उपयोग में एक लोग। मेरा दोनों के लिए काम करता है। पहले मैंने सोचा कि यह स्थिर फ़ोल्डर लोड कर रहा है लेकिन यह staticfiles के लिए भी काम करता है ... –

उत्तर

18

क्षण के लिए (Django 1.9 और पुराने), की तुलना में अधिक सुविधाओं की है कि योगदान app से {% load staticfiles %} भार static templatetag में निर्मित django.core.static

सबसे महत्वपूर्ण अंतर staticfiles, CDN पर संग्रहीत फ़ाइलों का प्रबंधन कर सकते क्योंकि इसकी समाधानकर्ता उदाहरण के लिए हैश का प्रबंधन कर सकते है। core.static केवल स्थिर फ़ाइल नाम है, जो पर्याप्त नहीं है आप अपनी फ़ाइलों को प्रोसेस कर रहे हैं, तो करने के लिए STATIC_URL संलग्न (जैसे विज्ञप्ति के बीच स्पष्ट कैश करने के लिए MD5 हैश जोड़ने)

यह अंतर तथ्य यह है कि गैर-स्थानीय भंडारण फ़ाइलों के प्रबंध था की वजह से है Django के मूल पैकेज में शामिल करने के लिए समर्पित नहीं है, लेकिन अभी भी कई डेवलपर्स के लिए एक आधिकारिक contrib पैकेज के रूप में लागू करने के लिए उपयोगी था। इसलिए यदि आपने staticfiles का उपयोग करना शुरू किया है, तो आपको इसे अपने टेम्पलेट्स में हर किसी का उपयोग करना याद रखना होगा। लेकिन, कुछ समस्याएं दिखाई दे सकता है, उदाहरण के लिए जब using Media classes इसलिए निर्णय एक में उन दो templatetags विलय और एक अलग व्यवहार का उपयोग करें कि क्या डेवलपर में django.contrib.staticfiles है करने के लिए किया गया है इसके INSTALLED_APPS या नहीं।

Django 1.10 and onwards (भी see ticket in Django tracker) से, {% load static %} उपयोग करने के लिए जा रहा है staticfiles आंतरिक अगर सक्रिय (oherwise डिफ़ॉल्ट व्यवहार रखने के लिए), और योगदान पैकेज में templatetag भ्रम से बचने के बहिष्कार किया जाएगा।

टी एल; डॉ

  • Django 1.10 से पहले: staticfiles भार एक templatetags कि गैर स्थानीय भंडारण (आसानी से हो या नहीं) का प्रबंधन कर सकते हैं जहां static नहीं कर सकते हैं;
  • Django 1.10 से : contrib.staticfiles एप्लिकेशन को अभी भी मौजूद हैं, लेकिन इसके templatetags केवल {% static %} templatetags हटा दिया जाएगा रहता है;
  • Django 2.0 से (मेरा मानना ​​है कि): {% load staticfiles %} निकाल दिया जाता है।

अभी के लिए, staticfiles templatetags उपयोग करें यदि आप संबंधित योगदान एप्लिकेशन का उपयोग (और तुम जानते हो क्यों आप इसे प्रयोग कर रहे हैं) Django 1.10 तक, नहीं तो बस static का उपयोग करें।

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