Статические файлы не загружаются на Amazon Bean Stalk для приложения Django
Я знаю, что этот вопрос задавался много раз, и я пробовал все решения, упомянутые на Stackoverflow, но я не смог заставить свой работать. Итак, вот мой вопрос:
Мой код (на eb) находится под:
/var/app/current
и моя структура папок выглядит следующим образом:
.ebextensions
platform
platform_site
manage.py
settings.py
Мой файл dbmigrate.config (под.ebextensions) содержит следующие записи:
option_settings:
aws:elasticbeanstalk:environment:proxy:staticfiles:
/static: static
container_commands:
03_collect_static:
command: "source /var/app/venv/*/bin/activate && python3 manage.py collectstatic"
leader_only: true
Статические файлы не были загружены во время выполнения. Итак, когда я просмотрел файлы журнала, файл журнала (/var/log/cfn-init-cmd.log) показал мне, что статические файлы были скопированы в эту папку:
[INFO] 398 static files copied to '/var/app/staging/platform-site/settings/static'
Однако, когда я посмотрел логи NGNIX (/var/log/nginx/error.log), я увидел, что он пытается загрузить статические файлы из другой папки:
[error] 1717#1717: *11 open() "/var/app/current/static/platform/images/sensitive_data.png" failed
(2: No such file or directory), client: 172.31.26.84, server: , request: "GET /static/platform/images/sensitive_data.png HTTP/1.1", host: "xxxx.elasticbeanstalk.com
Это странно. Почему он копирует в папку "staging" и пытается читать из папки "current"? Я понятия не имею, почему это происходит.
Забавно то, что я пытался найти эту папку на моей установке EB, и она не существует
var/app/staging/platform-site
Можете ли вы помочь?
В моем файле настроек была следующая запись:
STATIC_ROOT = os.path.join(PROJECT_ROOT, "static/")
это было неправильно. Я изменил его на следующий, и он сработал.
STATIC_ROOT = 'static'