Ich erstelle eine Django-Administrationsseite mit der Django-Entwicklungsversion
Aber es hat keinen CSS-Stil:
Was kann ich tun?
Vielen Dank
Ich erstelle eine Django-Administrationsseite mit der Django-Entwicklungsversion
Aber es hat keinen CSS-Stil:
Was kann ich tun?
Vielen Dank
Antworten:
Django stellt keine statischen Dateien alleine bereit. Sie müssen angeben, wo sich die Dateien befinden.
Das ADMIN_MEDIA_PREFIX in der settings.py zeigt Django an der richtigen Stelle.
Da Sie die Entwicklungsversion verwenden, benötigen Sie das dev-spezifische Dokument für statische Dateien . Adams Link führt Sie zur Version 1.2.
quelle
Nach dem Einrichten Ihres
STATIC_ROOT
undSTATIC_URL
müssen Sie möglicherweise ausführenquelle
STATIC_ROOT
und verwendenSTATIC_URL
, zum Beispiel: Ich habe "staticfiles" und "static" kombiniert , verwendetSTATIC_ROOT=os.path.join(BASE_DIR, "staticfiles")"
undSTATIC_URL="/static/"
. Meine App hat gut funktioniert, aber die Admin-Dateien wurden nicht gefunden. Ändern Sie es also sowohl in " statischeADMIN_MEDIA_PREFIX
ist jetzt veraltet, verwenden SieSTATIC_URL
stattdessen. Die EinstellungSTATIC_URL = '/static/'
in settings.py sollte den Job erledigen. Versuchen:und dann:
Funktioniert mit Django 1.4 Pre-Alpha SVN-16920.
quelle
static/admin
darin (manuell) verschiebestatic/css/
. Es scheint also, dass ich auf die CSS-Dateien zugreifen kann, nur wenn sie sich in der befinden,static/files
aber die Collectstatic sie nicht dort ablegt. Das manuelle Verschieben des Ordners funktioniert natürlich nicht, da die Vorlagen weiterhin auf zeigenstatic/admin
.Ich bin auch nach dem Django Book Tutorial auf dieses Problem gestoßen. In Kapitel 5 | Installieren des Modells heißt es im Buch, wenn auf die Standardeinstellung INSTALLED_APPS verwiesen wird: "Kommentieren Sie alle sechs dieser Zeichenfolgen vorübergehend aus, indem Sie ein Hash-Zeichen (#) vor sie setzen." http://www.djangobook.com/de/2.0/chapter05.html
In Kapitel 6 fordert das Buch den Leser auf, 4 dieser 6 Zeilen zu kommentieren. "Beachten Sie, dass wir diese vier INSTALLED_APPS-Einträge in Kapitel 5 auskommentiert haben. Kommentieren Sie sie jetzt aus."
Die Zeile statcifiles ist jedoch erforderlich, um CSS auf der Administrationsseite wiederherzustellen. Kommentieren Sie daher "django.contrib.staticfiles" aus.
quelle
Ich habe mehrere andere Threads gelesen, die versucht haben, dies zu beheben. Ich habe auf einen Alias zurückgegriffen, wie in anderen Threads. Dies setzt voraus, dass Ihre eigene benutzerdefinierte App statische Dateien korrekt bereitstellt. Dies würde darauf hinweisen, dass STATIC_ROOT und STATIC_URL über die richtigen Einstellungen verfügen.
Dann (aus Ihrem statischen Verzeichnis):
Hoffe das hilft jemandem ... es gibt viele Themen zu diesem Thema. :(
quelle
In müssen
/project_name/project_name/settings.py
Sie festlegenSTATIC_URL
, um Ihrer Site mitzuteilen, welche URL für statische Dateien verwendet werden soll.Stellen Sie
STATIC_ROOT
dann einen Ordner in Ihrem Dateisystem ein, der nicht mit einem der in aufgeführten Verzeichnisse identisch istSTATICFILES_DIRS
Liste Verzeichnisse .Sobald dies festgelegt
STATICFILES_ROOT
ist, werden Siepython manage.py collectstatic
aus dem Projektverzeichnis ausgeführt.Dadurch werden alle statischen Administratordateien und alle Dateien in anderen in der
STATICFILES_DIRS
Liste aufgeführten Ordnern kopiert . Grundsätzlich werden alle Ihre statischen Dateien an einem Ort gespeichert, sodass Sie sie bei der Bereitstellung Ihrer Site auf Ihr CDN verschieben können. Wenn Sie wie ich sind und kein CDN haben, haben Sie zwei Möglichkeiten:STATIC_ROOT
zurSTATICFILES_DIRS
Liste hinzu. Dadurch können die Finder für statische Dateien in Django alle statischen Dateien finden.STATICFILES_DIRS
diesen neuen Speicherort direkt an.Ich mache mit dieser Antwort keine Kommentare zur Sicherheit, es ist nur die Art und Weise, wie ich mit meinem Webserver für kleine Projekte entwickeln konnte. Ich gehe davon aus, dass Sie ein CDN wollen, wie es Django vorschlägt, wenn Sie etwas Größeres tun.
UPDATE: Ich bin gerade auf dieses Problem gestoßen und diese Methode hat nicht ganz das getan, was ich denke, dass Sie wollen. Was für mich letztendlich funktioniert hat, war, dass ich nach
collectstatic
dem Ausführen nur die statischen Admin-Dateien, die sie abgelegt haben,STATICFILES_ROOT
in das Verzeichnis kopiert habe, das ich für meine eigenen statischen Dateien verwendet hatte. Das hat das Problem für mich gelöst.quelle
Zusätzlich zu vielen anderen nützlichen Antworten hatte ich ein Problem, das noch nicht bemerkt wurde. Nach dem Upgrade von Django 1.3 auf 1.6 hatte mein Verzeichnis statischer Dateien einen fehlerhaften symbolischen Link zu den statischen Dateien des Django-Administrators.
Meine settings.py wurde konfiguriert mit:
Nach dieser Antwort ,
Ich hatte eine symbolische Verknüpfung,
/var/www/static/my-dev/admin
die auf Folgendes eingestellt war:Dieser Speicherort ist in Django 1.6 nicht mehr vorhanden, daher habe ich den Link aktualisiert zu:
Und jetzt funktioniert meine Admin-Site richtig.
quelle
Wenn Sie den Apache-Server zum Hosten Ihrer Django-Site verwenden, müssen Sie sicherstellen, dass der statische Alias auf Ihr Verzeichnis / site / site_media / static / verweist. Wenn sich Ihre statischen Dateien im Verzeichnis / to site / site / site_media / static / befinden, funktioniert die vorherige Apache-Alias-Konfiguration nicht.
quelle
Während ich dem Django-Tutorial folgte, hatte ich ein ähnliches Problem. In meinem Fall war das Problem der Mimetyp, der vom Entwicklungsserver beim Bereitstellen von CSS-Dateien verwendet wurde.
Der bereitgestellte Mimetyp war "application / x-css", was in Chrome (auf der Registerkarte "Netzwerk" der Entwicklertools) zu der folgenden Warnmeldung führte:
Die Problemumgehung, die ich gefunden habe: Ändern des zu bedienenden Mimetyps durch Hinzufügen der folgenden Zeilen zur Datei manage.py der django-Webanwendung:
Hinweis: Arbeitete für mich mit Django 1.7.4 unter Python 2.7 und Chrome 40.0
quelle
Content-Type: text/plain
und nicht auf der Seite gerendert werden.Mein Problem wurde behoben, indem eine neue virtuelle Umgebung für das Projekt erstellt wurde, bevor ich einen allgemeinen Python-Interpreter auf Systemebene verwendete.
Referenz: https://docs.djangoproject.com/de/2.1/howto/windows/
quelle
Stellen Sie sicher, dass
'django.contrib.staticfiles'
sich diesINSTALLED_APPS
in Ihrer settings.py befindetquelle
Dieselbe Art von Problem, auf die ich bei der Entwicklung einer Site in django-1.10.5 und python-2.7.13 gestoßen bin. Aber in meinem Firefox-51 und Chrome konnte die Anmeldeseite das CSS abrufen, aber es gab immer noch kein Styling. Aber seltsamerweise funktionierte es auf IE-8 ..
Ich habe versucht, alles Mögliche zu tun, was hier erwähnt und für meine SW-Versionen geeignet ist. Keiner hat funktioniert.
Aber als ich die gleiche Seite auf einem anderen System ausprobierte, das Python-2.7.8 hatte, funktionierte es.
Gerade gepostet, wenn es jemandem helfen kann ...
bearbeitet: später stellte ich fest, dass in Python-2.7.13 das Schreiben der folgenden zwei Zeilen in settings.py (plus Löschen des Cache des Browsers) den Trick getan hatte
quelle
Lauf:
python manage.py collectstatic
Fügen Sie diese Zeile zu Vhost hinzu, das sich unter: /etc/apache2/sites-available/000-default.conf befindet
Hier ist die gesamte Vhost-Einstellung für das Django-Setup
Das wird sicher funktionieren!
quelle
Wenn Sie in settings.py einen Wert für STATICFILES_DIRS festgelegt haben und der deklarierte Ordner nicht vorhanden ist oder sich an einer falschen Position befindet, hat der Administrator kein Styling, z. B. durch Definieren von STATICFILES_DIRS = (os.path.join (BASE_DIR, "static"). )) und der statische Ordner existiert nicht
quelle
Nachdem ich Tausende von Vorschlägen ausprobiert hatte, fand ich endlich eine Lösung, die half. Hier ist, was ich versucht habe und was ich verwendet habe. Ich benutze Django-1.11 und Nginx Webserver. Erstens habe ich sichergestellt, dass meine CSS / js-Dateien nicht 404 in der Browserkonsole erhalten. Danach konnte ich eine Warnung sehen
Ich habe die base.html in Admin-Vorlagen gefunden und entfernt
type="text/css"
und jetzt sehen die Zeilen so aus:
Dies hat das Problem für mich behoben.
quelle
Wenn sich das Problem auf einem dev / test / prod-Server befindet und Nginx verwendet, führen Sie bitte die folgenden Schritte aus.
Stellen Sie die Konfigurationen in settings.py wie folgt ein
Führen Sie den folgenden Befehl aus, um CSS- und JS-Dateien im statischen Ordner zu erstellen
Konfiguration in / etc / nginx / sites-enabled / example (Nginx), um statische Dateien bereitzustellen
quelle
das funktioniert gut und einfach. Ich habe den Ordner (manuell) verschoben. Sie müssen nur Ihre
static/admin
aus dem Verzeichnis des Hauptprojekts kopieren und in public_html einfügen,static/
wenn kein statischer Ordner vorhanden ist. Sie müssen den folgenden Befehl im Terminal ausführenHier geht es mit CSS-Arbeit von Django Admin
quelle
Konfigurieren statischer Dateien Stellen Sie sicher, dass diese
django.contrib.staticfiles
in Ihrem INSTALLED_APPS enthalten sind .Definieren Sie in Ihrer Datei settings.py beispielsweise STATIC_URL:
Für weitere Details statische Dateien
quelle