Django 2.1 - The staticfiles app

स्थैतिक अनुप्रयोग




django

स्थैतिक अनुप्रयोग

django.contrib.staticfiles आपके प्रत्येक एप्लिकेशन (और आपके द्वारा निर्दिष्ट किसी अन्य स्थान) से स्थिर फ़ाइलों को एक ही स्थान पर एकत्रित करता है जिसे आसानी से उत्पादन में परोसा जा सकता है।

यह भी देखें

स्थैतिक फ़ाइलों के अनुप्रयोग और कुछ उपयोग उदाहरणों के लिए एक परिचय के लिए, स्थैतिक फ़ाइलों को प्रबंधित करना देखें (जैसे चित्र, जावास्क्रिप्ट, सीएसएस) । स्थैतिक फ़ाइलों को तैनात करने के दिशा निर्देशों के लिए, स्थैतिक फ़ाइलों को तैनात करना देखें।

सेटिंग्स

निम्नलिखित सेटिंग्स पर विवरण के लिए स्थैतिक सेटिंग्स देखें:

प्रबंधन आदेश

django.contrib.staticfiles तीन प्रबंधन आदेशों को उजागर करता है।

collectstatic

django-admin collectstatic

स्टेटिक फाइल को STATIC_ROOT में STATIC_ROOT

डुप्लिकेट फ़ाइल नाम डिफ़ॉल्ट रूप से उसी तरह से हल किए जाते हैं कि टेम्पलेट रिज़ॉल्यूशन कैसे काम करता है: निर्दिष्ट स्थानों में से एक में पहली बार मिली फ़ाइल का उपयोग किया जाएगा। यदि आप भ्रमित हैं, तो findstatic कमांड आपको यह दिखाने में मदद कर सकती है कि कौन सी फाइलें मिली हैं।

बाद के STATIC_ROOT रन (अगर STATIC_ROOT खाली नहीं है) पर, फ़ाइलों को केवल तभी कॉपी किया जाता है, जब उनके पास STATIC_ROOT में फ़ाइल के टाइमस्टैम्प से अधिक संशोधित टाइमस्टैम्प हो। इसलिए यदि आप INSTALLED_APPS से किसी एप्लिकेशन को हटाते हैं, तो स्टैटिक स्टैटिक फ़ाइलों को हटाने के लिए collectstatic --clear विकल्प का उपयोग करना एक अच्छा विचार है।

STATICFILES_FINDERS का उपयोग करके फ़ाइलें खोजी जाती हैं। डिफ़ॉल्ट STATICFILES_DIRS और INSTALLED_APPS सेटिंग द्वारा निर्दिष्ट एप्लिकेशन की 'static' निर्देशिका में परिभाषित सभी स्थानों को देखना है।

post_process() प्रबंधन आदेश प्रत्येक रन के बाद post_process() के post_process() पद्धति को कॉल collectstatic प्रबंधन कमांड द्वारा प्राप्त किए गए रास्तों की एक सूची को पास करता है। यह सामूहिक रूप से सभी कमांड लाइन विकल्प भी प्राप्त collectstatic । यह CachedStaticFilesStorage द्वारा डिफ़ॉल्ट रूप से उपयोग किया जाता है।

डिफ़ॉल्ट रूप से, एकत्रित फ़ाइलें FILE_UPLOAD_PERMISSIONS से अनुमतियाँ प्राप्त FILE_UPLOAD_PERMISSIONS और एकत्र निर्देशिका FILE_UPLOAD_DIRECTORY_PERMISSIONS से अनुमतियाँ प्राप्त FILE_UPLOAD_DIRECTORY_PERMISSIONS । यदि आप इन फ़ाइलों और / या निर्देशिकाओं के लिए अलग-अलग अनुमतियाँ चाहते हैं, तो आप क्रमशः स्थिर फ़ाइल संग्रहण कक्षाओं में से किसी को भी उप-वर्ग कर सकते हैं और क्रमशः file_permissions_mode और / या directory_permissions_mode पैरामीटर निर्दिष्ट कर file_permissions_mode हैं। उदाहरण के लिए:

from django.contrib.staticfiles import storage

class MyStaticFilesStorage(storage.StaticFilesStorage):
    def __init__(self, *args, **kwargs):
        kwargs['file_permissions_mode'] = 0o640
        kwargs['directory_permissions_mode'] = 0o760
        super().__init__(*args, **kwargs)

फिर STATICFILES_STORAGE सेटिंग को 'path.to.MyStaticFilesStorage' सेट करें।

कुछ आमतौर पर इस्तेमाल किए जाने वाले विकल्प हैं:

--noinput, --no-input

किसी भी प्रकार के इनपुट के लिए उपयोगकर्ता को संकेत न दें।

--ignore PATTERN, -i PATTERN

इस ग्लोब-शैली पैटर्न से मेल खाती फ़ाइलों या निर्देशिकाओं को अनदेखा करें। अधिक अनदेखा करने के लिए कई बार उपयोग करें।

--dry-run, -n

फाइलसिस्टम को संशोधित करने के अलावा सब कुछ करें।

--clear, -c

मूल फ़ाइल को कॉपी या लिंक करने का प्रयास करने से पहले मौजूदा फ़ाइलों को साफ़ करें।

प्रतिलिपि बनाने के बजाय प्रत्येक फ़ाइल का एक प्रतीकात्मक लिंक बनाएं।

--no-post-process

कॉन्फ़िगर STATICFILES_STORAGE संग्रहण बैकेंड के post_process() पद्धति को कॉल न करें।

--no-default-ignore

सामान्य निजी ग्लोब-शैली के पैटर्न 'CVS' , '.*' और '*~' अनदेखा न करें।

विकल्पों की पूरी सूची के लिए, कमांड को चलाने के द्वारा स्वयं की मदद देखें:

$ python manage.py collectstatic --help

अनदेखा पैटर्न सूची को अनुकूलित करना

डिफ़ॉल्ट रूप से नजरअंदाज की गई पैटर्न सूची, ['CVS', '.*', '*~'] , प्रत्येक collectstatic आह्वान पर --ignore कमांड विकल्प प्रदान करने की तुलना में अधिक लगातार तरीके से अनुकूलित किया जा सकता है। एक कस्टम AppConfig वर्ग प्रदान करें, इस वर्ग के ignore_patterns विशेषता को ओवरराइड करें और अपनी INSTALLED_APPS सेटिंग में उस वर्ग पथ के साथ 'django.contrib.staticfiles' बदलें:

from django.contrib.staticfiles.apps import StaticFilesConfig

class MyStaticFilesConfig(StaticFilesConfig):
    ignore_patterns = [...]  # your custom ignore list

findstatic

django-admin findstatic staticfile [staticfile ...]

सक्षम खोजकर्ताओं के साथ एक या अधिक सापेक्ष पथों की खोज करता है।

उदाहरण के लिए:

$ python manage.py findstatic css/base.css admin/js/core.js
Found 'css/base.css' here:
  /home/special.polls.com/core/static/css/base.css
  /home/polls.com/core/static/css/base.css
Found 'admin/js/core.js' here:
  /home/polls.com/src/django/contrib/admin/media/js/core.js
findstatic --first

डिफ़ॉल्ट रूप से, सभी मिलान स्थान पाए जाते हैं। प्रत्येक रिश्तेदार पथ के लिए केवल पहला मैच वापस करने के लिए, --first विकल्प का उपयोग करें:

$ python manage.py findstatic css/base.css --first
Found 'css/base.css' here:
  /home/special.polls.com/core/static/css/base.css

यह एक डिबगिंग सहायता है; यह आपको दिखाएगा कि किसी दिए गए पथ के लिए कौन सी स्थैतिक फ़ाइल एकत्र की जाएगी।

--verbosity फ्लैग को 0 पर सेट करके, आप अतिरिक्त आउटपुट को दबा सकते हैं और बस पा सकते हैं पथ के नाम:

$ python manage.py findstatic css/base.css --verbosity 0
/home/special.polls.com/core/static/css/base.css
/home/polls.com/core/static/css/base.css

दूसरी ओर, --verbosity ध्वज को 2 पर सेट करके, आप उन सभी निर्देशिकाओं को प्राप्त कर सकते हैं जिन्हें खोजा गया था:

$ python manage.py findstatic css/base.css --verbosity 2
Found 'css/base.css' here:
  /home/special.polls.com/core/static/css/base.css
  /home/polls.com/core/static/css/base.css
Looking in the following locations:
  /home/special.polls.com/core/static
  /home/polls.com/core/static
  /some/other/path/static

runserver

django-admin runserver [addrport]

अगर runserver ऐप INSTALLED_APPS और स्टैटिक फाइल्स की ऑटोमैटिक सर्विंग जुड़ जाए, तो कोर runserver कमांड को ओवरराइड करता है। फ़ाइल सेवा MIDDLEWARE माध्यम से नहीं चलती है।

कमांड इन विकल्पों को जोड़ता है:

--nostatic

पूरी तरह से स्थैतिक फ़ाइलों के साथ स्थिर फ़ाइलों की सेवा को अक्षम करने के लिए --nostatic विकल्प का उपयोग करें। यह विकल्प केवल तभी उपलब्ध होता है जब staticfiles ऐप आपके प्रोजेक्ट की INSTALLED_APPS सेटिंग में हो।

उदाहरण का उपयोग:

django-admin runserver --nostatic
--insecure

भले ही DEBUG सेटिंग False , स्टैटिक फाइल्स ऐप के साथ स्टैटिक फ़ाइलों की सेवा के लिए --insecure विकल्प का उपयोग करें। इसका उपयोग करके आप इस तथ्य को स्वीकार करते हैं कि यह पूरी तरह से अक्षम है और शायद असुरक्षित है । यह केवल स्थानीय विकास के लिए है, इसका उपयोग कभी भी उत्पादन में नहीं किया जाना चाहिए और केवल तभी उपलब्ध होता है जब staticfiles ऐप आपके प्रोजेक्ट की INSTALLED_APPS सेटिंग में हो।

--insecure ManifestStaticFilesStorage या CachedStaticFilesStorage साथ काम नहीं करता है।

उदाहरण का उपयोग:

django-admin runserver --insecure

भंडार

StaticFilesStorage

class storage.StaticFilesStorage

FileSystemStorage स्टोरेज बैकएंड का एक उपवर्ग जो आधार फाइल सिस्टम लोकेशन के रूप में STATIC_URL सेटिंग और बेस URL के रूप में क्रमशः STATIC_URL सेटिंग का उपयोग करता है।

storage.StaticFilesStorage.post_process(paths, **options)

यदि इस विधि को स्टोरेज पर परिभाषित किया गया है, तो इसे प्रत्येक रन के बाद collectstatic प्रबंधन कमांड द्वारा बुलाया जाता है और एक फाइल के रूप में स्थानीय स्टॉरेज और पाथ के साथ-साथ डिक्शनरी विकल्प के रूप में पास हो जाता है। यह तीन मूल्यों के टुपल्स देता है: मूल_पथ original_path, processed_path, processed । पथ मान स्ट्रिंग्स हैं और processed करना एक बूलियन है जो इंगित करता है कि मूल्य पोस्ट-प्रोसेस किया गया था या नहीं, या एक अपवाद यदि पोस्ट-प्रोसेसिंग विफल हो गया है।

CachedStaticFilesStorage समकक्षों के साथ रास्तों को बदलने के लिए पर्दे के पीछे का उपयोग करता है और कैश को उचित रूप से अपडेट करता है।

ManifestStaticFilesStorage

class storage.ManifestStaticFilesStorage

StaticFilesStorage स्टोरेज बैकएंड का एक उपवर्ग जो फ़ाइल के नाम को फ़ाइल नाम की सामग्री के MD5 हैश को जोड़कर हैंडल करता है। उदाहरण के लिए, फ़ाइल css/styles.55e7cbb9ba48.css को css/styles.55e7cbb9ba48.css रूप में भी सहेजा जाएगा। css/styles.55e7cbb9ba48.css

इस भंडारण का उद्देश्य पुरानी फाइलों को सेवा में रखना है, अगर कुछ पेज अभी भी उन फाइलों को संदर्भित करते हैं, उदाहरण के लिए क्योंकि वे आपके या किसी तीसरे पक्ष के प्रॉक्सी सर्वर द्वारा कैश की जाती हैं। इसके अतिरिक्त, यह बहुत उपयोगी है यदि आप भविष्य में लागू होने वाले हेडर को लागू करना चाहते हैं, तो बाद की पृष्ठ यात्राओं के लिए लोड समय में तेजी लाने के लिए तैनात फाइलों में।

संग्रहित बैकएंड स्वचालित रूप से सहेजे गए फ़ाइलों में पाए गए पथों को बदल देता है जो अन्य सहेजे गए फ़ाइलों से मेल खाते हैं, जो कैश्ड कॉपी के पथ ( post_process() विधि का उपयोग करके post_process() से post_process() । डिफ़ॉल्ट रूप से उन रास्तों ( django.contrib.staticfiles.storage.HashedFilesMixin.patterns ) को खोजने के लिए इस्तेमाल किया जाने @import नियम @import स्टाइल शीट्स के @import नियम और url() स्टेटमेंट को कवर करता है। उदाहरण के लिए, सामग्री के साथ 'css/styles.css' फ़ाइल

@import url("../admin/css/base.css");

निम्न सामग्री के साथ एक 'css/styles.55e7cbb9ba48.css' फ़ाइल को बचाने के लिए ManifestStaticFilesStorage भंडारण 'css/styles.55e7cbb9ba48.css' के url() विधि को कॉल करके प्रतिस्थापित किया जाएगा:

@import url("../admin/css/base.27e20196a850.css");
storage.ManifestStaticFilesStorage.max_post_process_passes

चूंकि स्टैटिक फाइलें अन्य स्टैटिक फाइलों को संदर्भित कर सकती हैं, जिनके लिए उनके रास्तों को बदलने की आवश्यकता होती है, जब तक कि फ़ाइल हैश अभिसरण न करें, तब तक पथों को बदलने के कई पास की आवश्यकता हो सकती है। 'foo.css' नहीं होने के कारण एक अनंत लूप को रोकने के लिए (उदाहरण के लिए, यदि 'foo.css' संदर्भ 'bar.css' जो 'bar.css' का संदर्भ देता है) पोस्ट-प्रोसेसिंग छोड़ने से पहले पास की अधिकतम संख्या है। बड़ी संख्या में संदर्भों के साथ, अधिक संख्या में पास की आवश्यकता हो सकती है। ManifestStaticFilesStorage को subclassing और max_post_process_passes विशेषता सेट करके पास की अधिकतम संख्या बढ़ाएँ। यह 5 को डिफॉल्ट करता है।

ManifestStaticFilesStorage को सक्षम करने के लिए आपको निम्नलिखित आवश्यकताओं को पूरा करना होगा:

  • STATICFILES_STORAGE सेटिंग 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage' सेट है
  • DEBUG सेटिंग False सेट है
  • आपने collectstatic प्रबंधन आदेश का उपयोग करके अपनी सभी स्थिर फ़ाइलों को collectstatic

चूँकि MD5 हैश रनटाइम के दौरान आपकी वेबसाइट पर एक प्रदर्शन बोझ हो सकता है, staticfiles , staticfiles नामक फ़ाइल में सभी संसाधित फ़ाइलों के लिए हैशेड नामों के साथ मैपिंग को स्वचालित रूप से संग्रहीत करेगा। यह तब होता है जब आप collectstatic प्रबंधन आदेश चलाते हैं।

storage.ManifestStaticFilesStorage.manifest_strict

यदि कोई फ़ाइल staticfiles.json रनटाइम में प्रकट नहीं होती है, तो एक ValueError उठाया जाता है। इस व्यवहार को ManifestStaticFilesStorage को उप-वर्गीकृत करके और ManifestStaticFilesStorage करने के लिए manifest_strict विशेषता सेट करके अक्षम किया जा सकता है - कोई भी अपरिवर्तित मार्ग अपरिवर्तित नहीं रहेंगे।

सामूहिक रूप से चलने की आवश्यकता के कारण, इस भंडारण का उपयोग आमतौर पर तब नहीं किया जाना चाहिए जब परीक्षण चल रहा हो क्योंकि collectstatic परीक्षण सामान्य परीक्षण सेटअप के भाग के रूप में नहीं चलाया जाता है। परीक्षण के दौरान, सुनिश्चित करें कि STATICFILES_STORAGE सेटिंग 'django.contrib.staticfiles.storage.StaticFilesStorage' (डिफ़ॉल्ट) जैसी किसी अन्य चीज़ पर सेट है।

storage.ManifestStaticFilesStorage.file_hash(name, content=None)

फ़ाइल का हैशेड नाम बनाते समय उपयोग की जाने वाली विधि। दिए गए फ़ाइल नाम और सामग्री के लिए हैश लौटने की आवश्यकता है। डिफ़ॉल्ट रूप से यह सामग्री के विखंडू से एक एमडी 5 हैश की गणना करता है जैसा कि ऊपर बताया गया है। अपने स्वयं के हैशिंग एल्गोरिथ्म का उपयोग करने के लिए इस विधि को ओवरराइड करने के लिए स्वतंत्र महसूस करें।

CachedStaticFilesStorage

class storage.CachedStaticFilesStorage

CachedStaticFilesStorage ManifestStaticFilesStorage वर्ग की तरह एक समान वर्ग है, लेकिन स्थिर फ़ाइलों के बजाय staticfiles.json . staticfiles.json नामक फ़ाइल के बजाय संसाधित फ़ाइलों के हैशेड नामों को संग्रहीत करने के लिए Django के कैशिंग ढांचे का उपयोग करता है। यह ज्यादातर उन स्थितियों के लिए उपयोगी होता है जिनमें आपके पास फ़ाइल सिस्टम तक पहुंच नहीं है।

यदि आप भंडारण उपयोग के बैकएंड के कुछ विकल्पों को ओवरराइड करना चाहते हैं, तो बस CACHES सेटिंग में एक कस्टम प्रविष्टि निर्दिष्ट करें जिसे 'staticfiles' नाम दिया गया है। यह 'default' कैश बैकएंड का उपयोग करने के लिए वापस आता है।

चेतावनी

CachedStaticFilesStorage की सिफारिश नहीं है - लगभग सभी मामलों में ManifestStaticFilesStorage एक बेहतर विकल्प है। जब कैश मिस के लिए रनटाइम में हैशिंग फ़ाइलों की आवश्यकता होती है, तो CachedStaticFilesStorage का उपयोग करते समय कई प्रदर्शन दंड हैं। दूरस्थ फ़ाइल संग्रहण को कैश मिस पर फ़ाइल को हैश करने के लिए कई राउंड-ट्रिप की आवश्यकता होती है, क्योंकि नेस्टेड फ़ाइल पथों के मामले में फ़ाइल हैश सही होने के लिए कई फ़ाइल एक्सेस की आवश्यकता होती है।

खोजक मॉड्यूल

staticfiles खोजकर्ताओं में एक staticfiles विशेषता है जो निर्देशिका पथों की एक सूची है जिसमें खोजकर्ताओं ने खोज की है। उदाहरण का उपयोग:

from django.contrib.staticfiles import finders

result = finders.find('css/base.css')
searched_locations = finders.searched_locations

अन्य सहायक

स्थिर फ़ाइलों के साथ काम करने के लिए staticfiles ऐप के बाहर कुछ अन्य सहायक हैं:

  • django.template.context_processors.static() संदर्भ प्रोसेसर जो STATIC_URL टेम्पलेट के साथ प्रदान किए गए हर टेम्पलेट संदर्भ में STATIC_URL जोड़ता है।
  • बिल्टिन टेम्पलेट टैग static जो एक पथ लेता है और इसे स्टैटिक उपसर्ग STATIC_URL साथ STATIC_URL । यदि django.contrib.staticfiles स्थापित है, तो इसके बजाय टैग django.contrib.staticfiles के url() विधि का उपयोग करता है।
  • अंतर्निहित टेम्पलेट टैग get_static_prefix जो स्थिर उपसर्ग STATIC_URL साथ एक टेम्पलेट चर को चर के रूप में या सीधे उपयोग करने के लिए STATIC_URL करता है।
  • समान टेम्पलेट टैग get_media_prefix जो get_static_prefix तरह काम करता है, लेकिन MEDIA_URL का उपयोग करता है।

स्थिर फ़ाइल विकास दृश्य

स्टैटिक फाइल्स टूल्स को ज्यादातर स्टैटिक फाइल्स को सफलतापूर्वक प्रोडक्शन में तैनात करने में मदद के लिए तैयार किया गया है। यह आमतौर पर एक अलग, समर्पित स्थिर फ़ाइल सर्वर का मतलब है, जो स्थानीय स्तर पर विकसित होने के साथ गड़बड़ करने के लिए बहुत अधिक है। इस प्रकार, एक त्वरित और गंदे सहायक दृश्य के साथ staticfiles ऐप जहाज है जिसका उपयोग आप स्थानीय रूप से विकास में फ़ाइलों की सेवा के लिए कर सकते हैं।

views.serve(request, path)

यह दृश्य फ़ंक्शन विकास में स्थैतिक फ़ाइलों का कार्य करता है।

चेतावनी

यह दृश्य केवल तभी काम करेगा जब DEBUG True

ऐसा इसलिए है क्योंकि यह दृश्य घोर अक्षम है और शायद असुरक्षित है । यह केवल स्थानीय विकास के लिए है, और इसका उपयोग कभी भी उत्पादन में नहीं किया जाना चाहिए।

ध्यान दें

सेवा की गई फ़ाइलों के प्रकारों का अनुमान लगाने के लिए, यह दृश्य पायथन मानक पुस्तकालय से mimetypes मॉड्यूल पर निर्भर करता है, जो स्वयं अंतर्निहित प्लेटफ़ॉर्म के मैप फ़ाइलों पर निर्भर करता है। यदि आप पाते हैं कि यह दृश्य कुछ फ़ाइलों के लिए उचित सामग्री प्रकार नहीं लौटाता है, तो सबसे अधिक संभावना है कि प्लेटफ़ॉर्म की मैप फ़ाइलों को अपडेट करने की आवश्यकता है। यह प्राप्त किया जा सकता है, उदाहरण के लिए, Red Hat वितरण पर mailcap पैकेज को स्थापित या अद्यतन करके या डेबियन वितरण पर mime-support

यह दृश्य स्वचालित रूप से runserver द्वारा सक्षम होता है ( runserver सेटिंग True सेट के साथ)। किसी भिन्न स्थानीय विकास सर्वर के साथ दृश्य का उपयोग करने के लिए, अपने प्राथमिक URL कॉन्फ़िगरेशन के अंत में निम्नलिखित स्निपेट जोड़ें:

from django.conf import settings
from django.contrib.staticfiles import views
from django.urls import re_path

if settings.DEBUG:
    urlpatterns += [
        re_path(r'^static/(?P<path>.*)$', views.serve),
    ]

ध्यान दें, पैटर्न की शुरुआत ( r'^static/' ) आपकी STATIC_URL सेटिंग होनी चाहिए।

चूंकि यह थोड़ा बारीक है, इसलिए एक सहायक फ़ंक्शन भी है जो आपके लिए ऐसा करेगा:

urls.staticfiles_urlpatterns()

यह आपके पहले से परिभाषित पैटर्न सूची में स्थिर फ़ाइलों की सेवा के लिए उचित URL पैटर्न लौटाएगा। इसे इस तरह उपयोग करें:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns

# ... the rest of your URLconf here ...

urlpatterns += staticfiles_urlpatterns()

यह आपकी STATIC_URL सेटिंग का निरीक्षण करेगा और उसके अनुसार स्टैटिक फाइल्स को सर्व करने के लिए व्यू को वायर करेगा। एप्लिकेशन निर्देशिकाओं में फ़ाइलों के अलावा फ़ाइलों को देखने के लिए django.contrib.staticfiles को जाने django.contrib.staticfiles लिए उचित रूप से STATICFILES_DIRS सेटिंग सेट करना न भूलें।

चेतावनी

यह सहायक कार्य केवल तभी काम करेगा जब DEBUG True और आपकी STATIC_URL सेटिंग न तो खाली है और न ही http://static.example.com/ जैसे पूर्ण URL की है।

ऐसा इसलिए है क्योंकि यह दृश्य घोर अक्षम है और शायद असुरक्षित है । यह केवल स्थानीय विकास के लिए है, और इसका उपयोग कभी भी उत्पादन में नहीं किया जाना चाहिए।

'लाइव परीक्षण' का समर्थन करने के लिए विशिष्ट परीक्षण मामला

class testing.StaticLiveServerTestCase

यह सबसे django.test.LiveServerTestCase तक django.test.LiveServerTestCase

अपने माता-पिता की तरह, आप इसका उपयोग उन परीक्षणों को लिखने के लिए कर सकते हैं जिनमें परीक्षण के तहत कोड चलाना और HTTP (जैसे सेलेनियम, फैंटमजस, आदि) के माध्यम से परीक्षण उपकरण के साथ उपभोग करना शामिल है, क्योंकि इसकी आवश्यकता है कि स्थिर संपत्ति भी प्रकाशित हो।

लेकिन इस तथ्य को देखते हुए कि यह ऊपर वर्णित django.contrib.staticfiles.views.serve() दृश्य का उपयोग करता है, यह पारदर्शी रूप से परीक्षण निष्पादन-समय में ओवरले को django.contrib.staticfiles.views.serve() द्वारा प्रदान की गई संपत्तियों पर ओवरले कर सकता है। इसका मतलब यह है कि आपको अपने परीक्षण सेटअप के एक भाग के रूप में या इससे पहले collectstatic रूप से चलने की आवश्यकता नहीं है।