Dieser Artikel stellt hauptsächlich die detaillierte Erklärung zum Aufrufen statischer Dateien für das Django-Lernen vor. Jetzt kann ich ihn mit allen teilen, die ihn benötigen
Vorwort
Statische Dateien beziehen sich auf JS, CSS, Bilder, Videos und andere Dateien auf der Website. Dieser Artikel führt Sie hauptsächlich in den relevanten Inhalt zum Aufruf statischer Dateien beim Django-Lernen ein Teilen Sie es mit Ihnen. Referenzstudie, unten gibt es nicht viel zu sagen, werfen wir einen Blick auf die detaillierte Einführung
Die Methode ist wie folgt
1.settings .py statische Datei bezogener Beispielcode und Anweisungen:
# Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.8/howto/static-files/ STATIC_URL = '/static/' # 当运行 python manage.py collectstatic 的时候 # STATIC_ROOT 文件夹 是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来 # 把这些文件放到一起是为了用apache等部署的时候更方便 STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static') # 其它 存放静态文件的文件夹,可以用来存放项目中公用的静态文件,里面不能包含 STATIC_ROOT # 如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以 STATICFILES_DIRS = ( os.path.join(BASE_DIR, "common_static"), '/path/to/others/static/', # 用不到的时候可以不写这一行 ) # 这个是默认设置,Django 默认会在 STATICFILES_DIRS中的文件夹 和 各app下的static文件夹中找文件 # 注意有先后顺序,找到了就不再继续找了 STATICFILES_FINDERS = ( "django.contrib.staticfiles.finders.FileSystemFinder", "django.contrib.staticfiles.finders.AppDirectoriesFinder" )
2.STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR, 'collect_static')#BASE_DIR是项目的绝对地址
STATIC_ROOT ist das Verzeichnis, in dem alle statischen Dateien beim Bereitstellen statischer Dateien zusammengefasst werden (pyhton manage.py Collectstatic sollte als geschrieben werden). Eine absolute Adresse. Hier zum Beispiel meine Das Projekt mysite ist /home/mysite/, dann ist STATIC_ROOT /home/mysite/collect_static/
Geben Sie beim Bereitstellen des Projekts Folgendes in das Terminal ein:
python manage.py collectstatic
Django kopiert alle statischen Dateien in den Ordner STATIC_ROOT
3. STATICFILES_DIRSSTATIC_ROOT kommt nur ins Spiel Während der Bereitstellung, aber in tatsächlichen Situationen, gibt es zwei allgemeine Platzierungsorte für statische Dateien:
1. Eine besteht darin, in jeder App einen neuen statischen Ordner zu erstellen und die statischen Dateien darin abzulegen. Wenn Sie beispielsweise in der Vorlage statische Dateien verwenden,
django sucht in jeder App automatisch nach dem statischen Ordner (schreiben Sie den Ordnernamen also nicht falsch, sonst kann Django Ihren Ordner nicht finden
2. Eine weitere Möglichkeit besteht darin, einen öffentlichen Ordner außerhalb aller App-Dateien zu erstellen. Da einige statische Dateien nicht nur für eine bestimmte App gelten, können Sie sie zur Vereinfachung in einem öffentlichen Ordner ablegen Verwaltung (Beachten Sie, dass die Einrichtung eines öffentlichen statischen Dateiordners nur eine Möglichkeit ist, die Verwaltung zu erleichtern, aber nicht notwendig ist.
App kann statische Dateien appübergreifend anwenden, da schließlich alle statischen Dateien in STATIC_ROOT vorhanden sind.) Die Frage Jetzt erfahren Sie, wie Sie
Django mitteilen, dass Sie einige statische Dateien in einem öffentlichen Ordner außerhalb der App abgelegt haben. Anschließend müssen Sie STATICFILES_DIRS
STATICFILES_DIRS = ( os.path.join(BASE_DIR, 'common_static'), )
STATICFILES_DIRS weist Django an, zuerst in STATICFILES_DIRS nach statischen Dateien zu suchen und sie dann im statischen Ordner jeder App zu suchen (beachten Sie, dass Django nach statischen Dateien sucht. Es handelt sich um eine verzögerte Suche. Wenn die erste gefunden wird , die Suche stoppt)
3.STATIC_URL
Bisher kann der statische Dateimechanismus funktionieren, aber es gibt eine Frage: Kann ich über direkt auf die statischen Dateien in meinem Projekt zugreifen? URL? Die Antwort lautet definitiv „Ja“, aber bitte beachten Sie, dass Sie im Browser darauf zugreifen und nicht die lokale absolute Adresse Ihrer statischen Dateien eingeben können. Die lokale Adresse eines meiner Bilder lautet beispielsweise /home/mysite/common_static /myapp/photo.png
http://192.168/home/mysite/common_static/myapp/photo .png
Auf diese Weise meldet der Browser einen Fehler, es gibt keine solche Seite
STATIC_URL = '/static/'
Dann können Sie im Browser Folgendes eingeben:
http://192.168.1.2:8000/static/common_static/myapp/photo.png Dann entspricht es dem Zugriff auf /home/mysite/common_static/myap/photo.png
Verwenden Sie also im Browser den spezifischen Inhalt des Präfixes STATIC_URL, um STATIC_ROOT zuzuordnen,
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Aufrufs statischer Dateien beim Django-Lernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!