/ / Django, der statische Dateien lokal bereitstellt - Django

Django liefert statische Dateien lokal - django

Es ist schon eine Weile her, dass ich Django so eingerichtet habe, dass es lokal funktioniert. Ich benutze die Version 1.11. Damit es die statischen Dateien bedient. Mein Projekt heißt chatsys und ich habe den statischen Ordner und CSS in diesem Ordner erstellt chatsysstaticcssstyle.css .

Hier sind die aktuellen Einstellungen in der Einstellungsdatei.

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, "static")

und in den URLs

#for serving static files
from django.conf import settings
from django.conf.urls.static import static
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

und schließlich im HTML

{% load static %}
...
<link rel="stylesheet" type="text/css" href="/static/css/style.css">

In der Runserver-Konsole bekomme ich jedoch 404 für /static/css/style.css

Antworten:

3 für die Antwort № 1

Sie sollten definieren STATICFILES_DIRS und fügen Sie dort das statische Verzeichnis Ihres Projekts hinzu.

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

Dies sind die Verzeichnisse, aus denen Django statische Dateien sammelt.

Sie sollten dann ändern STATIC_ROOT ein anderes Verzeichnis sein. Es ist das Verzeichnis, das collectstatic sammelt statische Dateien an. Das statische Stammverzeichnis sollte nicht der Versionskontrolle unterliegen.

Nebenbei laden Sie das statische Tag in Ihre Vorlage, verwenden es jedoch nicht. Sie können es ändern in:

{% load static %}
...
<link rel="stylesheet" type="text/css" href="{% static "css/style.css" %}">

0 für die Antwort № 2

Verschieben Sie Ihren statischen Ordner unter das Basisverzeichnis

  • chatsys
    • Migrationen
    • Vorlagen
    • etc.
  • statisch
    • css
      • style.css