2016-11-19 2 views
-2

Когда я делаю collectstatic, он не работает и создает статическую папку и собирает в D:\static\.Почему django collectstatic работает правильно?

Мои настройки работают неправильно. Зачем?

Вот мои настройки:

STATIC_URL = '/static/' 

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

STATIC_ROOT = '/static/' 
+0

Ну, вы установили 'STATIC_ROOT' в (эквивалент Unix-стиля)' D: \ static \ ', так что ваши файлы будут в конечном итоге ... – knbk

+0

Если я изменю его на '\ static \ 'это будет SyntaxError: EOL во время сканирования строкового литерала – kelevra

+0

Это должен быть путь в стиле unix (косые черты, без 'D:'). Тем не менее, ваши файлы будут завершены в 'STATIC_ROOT'_, и вы настроили его на« D: \ static \ ». Если вы хотите, чтобы ваши файлы были в другом месте, настройте 'STATIC_ROOT', чтобы указать на другой каталог. – knbk

ответ

0

В Python, как и во многих языках, обратная косая черта является маскирующим. Если вы хотите, буквальное обратную косую черту, вам нужно бежать он сам:

STATIC_ROOT = 'D:\\static\\' 

или вы можете использовать r'' обозначения для символьной строки:

STATIC_ROOT = r'D:\static\' 

Однако документация Django говорит, что вы должны быть используя косые черты, даже в Windows. Неясно, относится ли это также к STATIC_ROOT и MEDIA_ROOT, но для STATICFILES_DIRS. В этом случае STATIC_ROOT бы стать:

STATIC_ROOT = 'D:/static/' 

'D:\DjangoProjects\mysite' вы написали, конечно, ошибка, должно быть 'D:/DjangoProjects/mysite'.

Смежные вопросы