[PYTHON] [Django] Über statische dateibezogene Einstellungen (CSS, JS)

Ich habe versucht, die Einstellungsmethode für CSS-Dateien usw. in Django zusammenzufassen

Was ist eine statische Datei?

Eine Datei, deren Inhalt sich aufgrund einer Anforderung eines Clients nicht ändert, z. B. eine statische Datei.

Einstellungen in Setting.py

Es müssen drei Hauptparameter eingestellt werden.

STATIC_URL Geben Sie die URL für die Zustellung statischer Dateien an. Der Standardwert ist '/ static /'. http (s): // Hostname / static / ... Sie können mit darauf zugreifen.

settings.py


STATIC_URL = '/static/'

STATICFILES_DIRS Gibt an, wo statische Dateien in Ihrem Projekt gespeichert werden sollen. Das Standard-Speicherziel ist Projektname / App-Name / statisch / App-Name / ... Es ist jedoch mühsam, jedes Mal statisch / app name / ... zu platzieren, wenn Sie die CSS-Datei in mehreren Anwendungen verwenden möchten. Es ist vorzuziehen, es wie folgt zu definieren und direkt unter dem Projektverzeichnis abzulegen, in dem sich manage.py und der Anwendungsordner befinden.

settings.py


STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')
                    ] 

BASE_DIR ist übrigens ein Pfad, der direkt unter das Projekt zeigt, und eine Variable, die in settings.py wie unten gezeigt definiert ist.

settings.py


BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 

STATIC_ROOT Das Speicherziel der statischen Datei, auf die in Einstellung.py verwiesen wird, wenn DEBUG = False ist. Mit anderen Worten, für die Produktion. Ändern Sie aus Sicherheitsgründen das Speicherziel, da es besser ist, dass das Speicherziel der statischen Datei im Projekt und das Speicherziel in der Produktion unterschiedlich sind.

settings.py


STATIC_ROOT = '/var/www/Projektname/static' 

Einstellungen in urls.py

urls.py


from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('app1.urls')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Importieren Sie zunächst die Einstellungen und statisch. Fügen Sie es dann wie oben beschrieben zur Variablen urlpatterns hinzu. Geben Sie im ersten Argument die Verteilungs-URL der statischen Datei und im Argument document_root das Speicherziel der statischen Datei an. Dadurch wird die URL mit dem Speicherziel verknüpft. Wenn Sie auf die URL zugreifen, wird das Speicherziel der statischen Datei angezeigt. Wird hier nicht STATICFILES_DIRS verwendet? Ich denke, das liegt daran, dass auf STATICFILES_DIRS verwiesen wird, wenn STATIC_ROOT nicht festgelegt wurde.

So rufen Sie mit einer HTML-Vorlage auf

{% load static %}

<link rel="stylesheet" type="text/css" href="{% static 'style.css' %}">
<img src="{% static 'images/logo.png' %}"> 

Aktivieren Sie zunächst static mit {% load static%}. Und indem Sie die URL in jedem Tag angeben {% static'filename '%} Angeben. Dies beschreibt den Pfad unter STATICFILES_DIRS oder STATIC_ROOT.

Im obigen Beispiel

project -static - images - logo.png
                L style.css
        Lmanage.py

Es wird eine Struktur wie.

Recommended Posts

[Django] Über statische dateibezogene Einstellungen (CSS, JS)
Zusammenfassung der Einstellungen für statische Django-Dateien (statisch)
Python --Vergleichen Sie Django css / js
Django Tutorial Zusammenfassung für Anfänger von Anfängern ⑥ (statische Datei)
Django verwandte Websites
Django + MySQL-Einstellungen
Django URL-Einstellungen