Unterschiede zwischen STATICFILES_DIR, STATIC_ROOT und MEDIA_ROOT in Django
Statische Dateien in Django sind Dateien, die sich nicht ändern, wie zum Beispiel Bilder, CSS und JavaScript. Django verwaltet diese Dateien je nach Zweck und Verwendung unterschiedlich.
STATICFILES_DIR und STATIC_ROOT werden beide für statische Dateien verwendet, dienen aber unterschiedlichen Zwecken. STATICFILES_DIR wird verwendet, um zusätzliche Verzeichnisse anzugeben, in denen Django beim Ausführen des Befehls „collectstatic“ nach statischen Dateien sucht. Dies ist nützlich, wenn Sie Ihre statischen Dateien an einem vom Hauptverzeichnis Ihres Projekts getrennten Ort aufbewahren möchten, beispielsweise auf einem dedizierten Server für statische Dateien.
STATIC_ROOT wird verwendet, um anzugeben, wo Django gespeichert wird Sammeln Sie alle statischen Dateien und stellen Sie sie zur Verfügung, wenn Ihr Projekt bereitgestellt wird. Dies wird normalerweise auf einen Speicherort außerhalb des Verzeichnisses Ihres Projekts festgelegt, z. B. /home/user/project/django1/top/listing/static in Ihrem Beispiel.
MEDIA_ROOT wird für Benutzer- hochgeladene Dateien wie Bilder oder Videos. Im Gegensatz zu statischen Dateien können sich hochgeladene Dateien ändern und unterliegen normalerweise keiner Versionierung. MEDIA_ROOT gibt an, wo diese Dateien auf dem Server gespeichert werden.
In Ihrem Fall verwenden Sie MEDIA_ROOT, um hochgeladene Fotos zu speichern, was korrekt ist. Als Sie jedoch versucht haben, ein benutzerdefiniertes JS-Skript in Ihren Admin einzubinden, haben Sie STATICFILES_DIRS anstelle von STATIC_ROOT verwendet. Aus diesem Grund sind beim Laden des JS-Skripts 404-Fehler aufgetreten.
Um dieses Problem zu beheben, können Sie entweder:
Denken Sie daran, dass STATIC_ROOT nur verwendet wird, wenn Ihr Projekt bereitgestellt wird. Daher wird empfohlen, STATICFILES_DIRS während der Entwicklung und STATIC_ROOT für die Bereitstellung zu verwenden .
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen STATICFILES_DIR, STATIC_ROOT und MEDIA_ROOT in Django?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!