В /project_name/project_name/settings.py
вам нужно установить STATIC_URL
, чтобы сообщить вашему сайту, какой URL использовать для статических файлов.
Затем установите STATIC_ROOT
в качестве некоторой папки в вашей файловой системе, которая отличается от любой из ваших каталогов, перечисленных в списке STATICFILES_DIRS
.
После установки STATICFILES_ROOT
вы запускаете python manage.py collectstatic
из каталога проекта.
При этом будут скопированы все статические файлы администратора и все файлы в любых других папках, перечисленных в списке STATICFILES_DIRS
. По сути, это помещает все ваши статические файлы в одно место, чтобы вы могли перемещать их в свой CDN при развертывании своего сайта. Если вы похожи на меня и у вас нет CDN, у вас есть два варианта:
- Добавьте папку, которую вы указали как
STATIC_ROOT
, в список STATICFILES_DIRS
. Это позволит искателям статических файлов в django найти все статические файлы.
- Переместите всю папку статических файлов куда-нибудь еще в вашей файловой системе и попросите
STATICFILES_DIRS
включить это новое местоположение.
В этом ответе я не комментирую безопасность, это просто способ, которым я смог разработать свой веб-сервер для небольших проектов. Я ожидаю, что вам понадобится CDN, как подсказывает django, если вы делаете что-то более масштабное.
UPDATE:
Я только столкнулся с этой проблемой, и этот метод не совсем то, что я думаю, вы хотите. То, что сработало для меня, было после того, как я запустил collectstatic
, я просто скопировал статические файлы администратора, которые он поместил в STATICFILES_ROOT
, в каталог, который я использовал для своих собственных статических файлов. Это решило проблему для меня.