У меня есть проект Django, который я добавил в AWS. на сервере разработки сайт работает отлично, однако я не могу получить свои статические файлы на моем сайте aws
Ниже мое дерево проекта и статические файлы находятся в проекте
Ниже мой settings.py
Ниже мой сервер nginx
Ниже мой supervisor.conf
[program:Khal]
command = /home/samir/KhalEventsVenv/bin/uwsgi --http :9000 --wsgi-file /home/samir/khal-events/src/Khal/Khal/wsgi.py
directory = /home/samir/khal-events/src/Khal/
user = root
autostart = true
autorestart = true
stdout_logfile = /var/log/Khal.log
stderr_logfile = /var/log/Khal_err.log
Изменил nginx на
server {
listen 80 default_server;
location /static/admin {
alias /home/samir/KhalEventsVenv/lib/python3.6/site-packages/django/contrib/admin/static/admin;
}
location /static/ {
alias /home/samir/khal-events/src/Khal/staticfiles;
}
Тем не менее, страница не становится статичной, см. Изображение ниже.
Я проверил пути. Они хороши. Однако по какой-то причине, когда я запускаю сайт из AWS, он не получает статические файлы также, когда я попадаю на страницу администратора. Статических файлов для администратора тоже нет. КАК я могу получить свои статические файлы в AWS
По предложению @CoolestNerdIII
@Anto Я только что добавил в вопрос свой файл supervisor.conf. Для запуска сервера делаю supervisorctl restart all
Если у вас есть ssh-доступ к вашему серверу, просто зайдите туда и запустите python manage.py collectstatic в правильном каталоге, а затем перезапустите сервер wsgi.
@Anto Я сделал collectstatic, я обновил изображение рассматриваемого терминала. Но все же статический файл не отображается
Ваши статические файлы (где вы собираете статические данные) находятся в другом месте, чем то, на которое указывает nginx





Похоже, что в вашем файле настроек django вы определяете каталог статических файлов как /home/samir/khal-events/src/Khal/staticfiles (на основе вашего снимка экрана вашей команды collectstatic и вашего файла settings.py).
Однако в вашем конфигурационном файле nginx вы ищете свой статический каталог внутри home/samir/khal-events/src/Khal/static. Вам нужно изменить это на правильный путь, и все будет в порядке. (имеется в виду использовать /home/samir/khal-events/src/Khal/staticfiles)
Обновление №1:
Вам следует удалить /static/admin из вашего nginx. Кроме того, вы можете попробовать дублировать вашу группу /static с помощью /static/. Обязательно перезапустите службу nginx после внесения изменений.
Наконец, если ни один из них не отображает страницу правильно, проверьте журнал консоли в своем веб-браузере, а также журналы nginx, поскольку они обычно указывают на то, где информация загружается неправильно.
Обновление №2:
location /static/ {
alias /home/samir/khal-events/src/Khal/staticfiles;
}
location /static {
alias /home/samir/khal-events/src/Khal/staticfiles;
}
изменил статику в nginx, см. изображение выше, также запустил команду collectstatic, но все же страница администратора странная, и даже на обычном сайте статика не импортируется
@SamirTendulkar Я обновил свой ответ, добавив кое-что, чтобы попробовать.
Я изменил свой nginx в соответствии с вашим советом и обновил его в приведенном выше примере. Выглядит правильно? Я планирую перезапустить nginx с sudo systemctl restart nginx
пробовал ваш код также пробовал location /static/ { alias /home/samir/khal-events/src/Khal/staticfiles; } location /static { alias /home/samir/khal-events/src/Khal/staticfiles/; } все тот же Также пробовал дополнительный / во втором пути
Вы просматривали журналы nginx и искали ошибки консоли в своем браузере?
Позвольте нам продолжить обсуждение в чате.
у меня сработало просто заменить root на alias, надеюсь, это поможет
Вы запускали команду
python manage.py collectstaticна своем сервере? Подробнее см. документы.