Django and staticfiles

Django and staticfiles

Pavel Zagrebelin

когда ты запрашиваешь урл (/static/1.txt), который уходит в static files, то джанга отрезает от него ту часть, которая в настройках указана как STATIC_URL. То, что останется, ищется вначале в путях, которые прописаны в STATICFILES_DIRS, потом оно перебирает все приложения, заходит там в папку static и ищет вот тот остаточек там.

Это поведение по умолчанию и настраивается в настройке STATICFILES_FINDERS.

STATICFILES_FINDERS = (

  'django.contrib.staticfiles.finders.FileSystemFinder',

  'django.contrib.staticfiles.finders.AppDirectoriesFinder',

)

При настройке на девелопе главный вопрос - как выглядит сообщение об ошибке.

разница одна - есть список урлов или нет.             

если список урлов есть (рис.1) - значит не установился обработчик static урлов. Если списка нет, значит обработчик работает, но не может найти запрошенный файл.

 В случае продакшена там всё проще - ./manage.py collectstatic проходит по всем местам, которые я указал выше, собирает там вообще все файлы, и сваливает их в STATIC_ROOT.

nginx знает только про этот STATIC_ROOT и не лезет за статикой в недра жанго-приложений.

Report Page