Was ist der Unterschied zwischen STATICFILES_DIR, STATIC_ROOT und MEDIA_ROOT in Django?

Patricia Arquette
Freigeben: 2024-10-25 13:23:30
Original
239 Leute haben es durchsucht

What's the Difference Between STATICFILES_DIR, STATIC_ROOT, and MEDIA_ROOT in Django?

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:

  • Verwenden Sie STATIC_ROOT, um den Speicherort anzugeben Ihrer statischen Dateien und fügen Sie das benutzerdefinierte JS-Skript an diesem Speicherort hinzu.
  • Verwenden Sie STATICFILES_DIRS, um ein zusätzliches Verzeichnis hinzuzufügen, in dem Django nach statischen Dateien sucht und das JS-Skript zu diesem Verzeichnis hinzufügt.

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!