Статические файлы Django Nginx не отображаются в AWS

У меня есть проект Django, который я добавил в AWS. на сервере разработки сайт работает отлично, однако я не могу получить свои статические файлы на моем сайте aws

Ниже мое дерево проекта и статические файлы находятся в проекте

Статические файлы Django Nginx не отображаются в AWS

Ниже мой settings.py

Статические файлы Django Nginx не отображаются в AWS

Ниже мой сервер nginx

Статические файлы Django Nginx не отображаются в AWS

Ниже мой 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;

    }

Тем не менее, страница не становится статичной, см. Изображение ниже.

Статические файлы Django Nginx не отображаются в AWS

Я проверил пути. Они хороши. Однако по какой-то причине, когда я запускаю сайт из AWS, он не получает статические файлы также, когда я попадаю на страницу администратора. Статических файлов для администратора тоже нет. КАК я могу получить свои статические файлы в AWS

Статические файлы Django Nginx не отображаются в AWS

По предложению @CoolestNerdIII

Статические файлы Django Nginx не отображаются в AWS

Вы запускали команду python manage.py collectstatic на своем сервере? Подробнее см. документы.

Anto 09.11.2018 13:21

@Anto Я только что добавил в вопрос свой файл supervisor.conf. Для запуска сервера делаю supervisorctl restart all

Samir Tendulkar 09.11.2018 13:24

Если у вас есть ssh-доступ к вашему серверу, просто зайдите туда и запустите python manage.py collectstatic в правильном каталоге, а затем перезапустите сервер wsgi.

Anto 09.11.2018 13:26

@Anto Я сделал collectstatic, я обновил изображение рассматриваемого терминала. Но все же статический файл не отображается

Samir Tendulkar 09.11.2018 13:31

Ваши статические файлы (где вы собираете статические данные) находятся в другом месте, чем то, на которое указывает nginx

CoolestNerdIII 09.11.2018 13:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
5
748
2

Ответы 2

Похоже, что в вашем файле настроек 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, но все же страница администратора странная, и даже на обычном сайте статика не импортируется

Samir Tendulkar 09.11.2018 14:03

@SamirTendulkar Я обновил свой ответ, добавив кое-что, чтобы попробовать.

CoolestNerdIII 09.11.2018 14:20

Я изменил свой nginx в соответствии с вашим советом и обновил его в приведенном выше примере. Выглядит правильно? Я планирую перезапустить nginx с sudo systemctl restart nginx

Samir Tendulkar 09.11.2018 14:35

пробовал ваш код также пробовал location /static/ { alias /home/samir/khal-events/src/Khal/staticfiles; } location /static { alias /home/samir/khal-events/src/Khal/staticfiles/; } все тот же Также пробовал дополнительный / во втором пути

Samir Tendulkar 09.11.2018 14:51

Вы просматривали журналы nginx и искали ошибки консоли в своем браузере?

CoolestNerdIII 09.11.2018 14:57
ec2-54-157-27-88.compute-1.amazonaws.com/admin/login/?next=/‌…, это ссылка на aws. не показывает ошибок
Samir Tendulkar 09.11.2018 15:02

Позвольте нам продолжить обсуждение в чате.

CoolestNerdIII 09.11.2018 15:29

у меня сработало просто заменить root на alias, надеюсь, это поможет

Другие вопросы по теме