2016-11-19 5 views
-2

Wenn ich Collectstatic mache, funktioniert es nicht, und statische Ordner erstellen und in D:\static\ sammeln.Warum funktioniert django collectstatic nicht korrekt?

Meine Einstellungen funktionieren nicht richtig. Warum?

Hier sind meine Einstellungen:

STATIC_URL = '/static/' 

STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, 'static'), 
    'D:\DjangoProjects\mysite'] 

STATIC_ROOT = '/static/' 
+0

Nun, Sie haben 'STATIC_ROOT' auf (das Unix-Stil Äquivalent von)' D: \ static \ 'gesetzt, so dass Ihre Dateien am Ende sind ... – knbk

+0

Wenn ich es zu '\ static \ ändern 'Es wird SyntaxError: EOL beim Scannen von String-Literal – kelevra

+0

Es sollte ein Unix-Stil-Pfad sein (Vorwärts Schrägstriche, keine 'D:'). Ihre Dateien _ landen jedoch in 'STATIC_ROOT'_ und Sie haben sie so konfiguriert, dass sie auf' D: \ static \ 'zeigt. Wenn Sie Ihre Dateien anderswo haben möchten, konfigurieren Sie 'STATIC_ROOT', um auf ein anderes Verzeichnis zu zeigen. – knbk

Antwort

0

In Python, wie in vielen Sprachen, ist der Backslash der Escape-Zeichen. Wenn Sie ein Backslash wollen, müssen Sie es selbst entkommen:

STATIC_ROOT = 'D:\\static\\' 

oder Sie die r'' Notation für eine Zeichenkette verwenden können:

STATIC_ROOT = r'D:\static\' 

Jedoch sagt die Django-Dokumentation, dass Sie sein sollten Verwenden von Schrägstrichen, auch unter Windows. Es ist nicht klar, ob dies auch für STATIC_ROOT und MEDIA_ROOT gilt, aber für STATICFILES_DIRS. In diesem Fall würde STATIC_ROOT werden:

STATIC_ROOT = 'D:/static/' 

Die 'D:\DjangoProjects\mysite' Sie geschrieben haben sicherlich ein Fehler ist, sollte 'D:/DjangoProjects/mysite' sein.

Verwandte Themen