Heim  >  Artikel  >  Web-Frontend  >  Was soll ich tun, wenn Django die CSS-Datei geändert hat, diese jedoch nicht wirksam wird?

Was soll ich tun, wenn Django die CSS-Datei geändert hat, diese jedoch nicht wirksam wird?

醉折花枝作酒筹
醉折花枝作酒筹Original
2021-05-18 17:11:254506Durchsuche

Lösung: 1. Konfigurieren Sie „STATIC_URL“ und „STATIC_ROOT“ in der Datei „settings.py“ richtig. 2. Führen Sie den Befehl „python manage.py Collectstatic“ aus. 3. Starten Sie Gunicorn und Nginx neu.

Die Betriebsumgebung dieses Tutorials: Windows7-System, CSS3- und HTML5-Version, Dell G3-Computer.

Nach der Bereitstellung von Django auf dem Server muss jede Änderung an der Website auf der Serverseite synchronisiert werden. Bevor ich diesen Artikel schrieb, dachte ich, es gehe nur darum, den Quellcode zu synchronisieren die heutige Frage.

Nachdem ich die Datei main.css geändert habe, habe ich die Website über Git synchronisiert und der Code wurde erfolgreich mit dem Server synchronisiert. Aber es kann einfach nicht normal angezeigt werden. Nach einiger Suche und Erkundung habe ich den richtigen Weg gefunden, statische Dateien wie CSS zu ändern Die .py-Datei unter Ihrem Projekt wurde korrekt mit STATIC_URL und STATIC_ROOT konfiguriert:

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static/')

Bitte achten Sie auf das „/“ in den Anführungszeichen. Ein weiteres oder eins weniger / führt dazu, dass Ihre Änderung nicht wirksam wird. Das lag daran des zusätzlichen „/“, das ich umgedreht habe. Was bedeutet der Parameter konkret?

STATIC_ROOT ist eine absolute Adresse, die nur verwendet wird, wenn Django bereitgestellt wird Das Projekt, da es mehrere APPs gibt, kann sein, dass die statischen Dateien in jeder APP zur einheitlichen Verwendung durch Nginx gesammelt werden Die Funktion von

STATIC_URL besteht darin, dem Browser den Zugriff auf Ihre statischen Dateien zu ermöglichen, die als Zuordnung dienen.

2 Dateien lokal sammeln Es wird nur mit dem statischen Ordner unter der entsprechenden APP synchronisiert, aber Nginx und andere rufen die Dateien im von Ihnen festgelegten STATIC_ROOT-Ordner auf, daher müssen wir diesen sehr wichtigen Vorgang nach der Codesynchronisierung ausführen:

python manage.py collectstatic

Nachdem dieser Code ausgeführt wurde, wird der Die gerade geänderte main.css-Datei wird in der statischen Datei im Stammverzeichnis der Website gesammelt und wartet auf den Aufruf von nginx.

3 Starten Sie den Dienst neu. Nachdem Sie die ersten beiden Schritte ausgeführt haben, müssen Sie auch einen Neustart durchführen Gunicorn und Nginx, aber es wurde ohne Neustart wirksam. Es wird empfohlen, diesen Schritt auszuführen.

# 查看gunicorn进程ID
pstree -ap | grep gunicorn

# 重启进程
kill -HUP ID

Empfohlenes Lernen:

CSS-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn Django die CSS-Datei geändert hat, diese jedoch nicht wirksam wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn