2014-01-10 3 views
16

С Джанго Docs:Зачем использовать сборщик Django вместо того, чтобы просто обслуживать файлы непосредственно из вашего статического каталога?

django.contrib.staticfiles развертывания обеспечивает удобство команды управления для сбора статических файлов в одном каталоге, так вы можете служить им легко.

Установите настройки в каталог STATIC_ROOT, из которого вы хотите служить эти файлы, например:

STATIC_ROOT = "/var/www/example.com/static/" 

Запускаем collectstatic команда управления:

$ python manage.py collectstatic 

Это будет копировать все файлы из ваших статических папок в каталог STATIC_ROOT.

Используйте веб-сервер по своему усмотрению для обслуживания файлов. Развертывание статических файлов охватывает некоторые общие стратегии развертывания для статических файлов.

Какова цель копирования файлов, почему бы просто не обслуживать их из каталога, в котором они живут в приложении?

ответ

22

Почему бы вам не просто позвонить в ваш каталог static? Вы можете использовать несколько приложений, и некоторые из ваших приложений могут не находиться под вашим контролем. До того, как приложение staticfiles существовало, вам пришлось либо вручную скопировать статические файлы для всех приложений в общий каталог, загрузить их в ваш CDN, либо связать их с корнем документа вашего веб-сервера.

Приложение staticfiles установило соглашение: поместите статические файлы для каждого приложения в каталог static и дайте Django выполнить эту работу за вас.

+0

Возможно, я никогда не использовал приложение, которое было необходимо (помимо администратора). Так что в моем случае, когда мне не нужно, что есть что-то не так, слушая статические файлы непосредственно из статического каталога? –

+1

Если вы хотите придерживаться лучших практик, используйте приложение staticfiles. Я бы использовал только статические файлы для действительно небольших проектов, и даже тогда лучше «построить привычку» делать это правильно – sk1p

+0

до коллективной команды, Django, где искать статический файл? – shuboy2014

11

STATIC_ROOT может быть на другой машине, чем приложение, поэтому копирование ваших статических файлов в статический корень означает, что вы можете обслуживать ваши статические файлы с другого сервера (CDN FTW!), Который вы не сможете делать, если эти файлы находятся только в соответствующих каталогах приложений.

+0

Это лучший ответ; люди не должны рекомендовать использовать staticfiles/collectstatic для себя; для этого он предназначен. –

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