Почему может подгружаться не вся статика?
У меня django проект стоит на vps, пару дней назад все отлично работало, я перезапустил gunicorn, чтобы у меня обновились формы. Все было хорошо, но посмотрев через день, у меня стала подгружаться не вся статика

Все файлы лежат в директории, collectstatic делал.
При запуске gunicorn`а не выводило что он не находит статику.
В чем может быть причина этого? Статика у меня подгружается через django, а не через nginx.
Ответы (1 шт):
Причина в DEBUG = False с отключенной отладкой Django не обрабатывает статические файлы для этого можно использовать например nginx.
Примерная настройка под linux:
Установка
apt install python3
apt install python3-pip
apt install nginx
apt install nano
pip3 install django
pip3 install gunicorn
Создаем наш проект
django-admin.py startproject myproject
не забываем про collectstatic перед выкладкой, чтобы nginx мог ее корректно подгружать.
python3 manage.py collectstatic
Проект лучше создавать в виртуальном окружении.
Проверяем gunicorn
Из папки проекта там где лежит manage.py запускаем gunicorn указав Ваш IP
gunicorn myproject.wsgi:application --bind 111.111.111.111:8000
При этом сайт будет отображаться без статических файлов это нормально!
Иногда gunicorn может оставаться в памяти
killall gunicorn
Создадим конфиг файл для gunicorn
cd /opt/my_site/myproject/myproject` # каталог с settings.py
touch gunicorn.conf.py
Открываем
nano gunicorn.conf.py
Пишем
bind = '127.0.0.1:8000'
workers = 3
user = "nobody"
Настроим nginx
Перейдем в /etc/nginx/sites-available/
cd /etc/nginx/sites-available/
и откроем default
nano default
Удаляем оттуда все и пишем
server {
listen 80;
server_name 111.111.111.111; # ip или доменное имя
access_log /var/log/nginx/site.log;
location /static/ {
root /opt/my_site/myproject/; # где manage.py
expires 30d;
}
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Сохраняем, выходим, перезапускам nginx
service nginx restart
Если все правильно переходим в браузере по адресу сайта и радуемся итогу.
Автозапуск - systemd
Создадим и отредактируем файл настроек systemd создадим конфиг и отредактируем его
cd /etc/systemd/system/
touch myproject.service
nano myproject.conf
Содержимое файла:
[Unit]
Description=My_Project
After=nginx.service
[Service]
Type=forking
ExecStart=/opt/my_site/env/bin/gunicorn myproject.wsgi:application -c /opt/my_site/myproject/myproject/gunicorn.conf.py
Restart=always
[Install]
WantedBy=multi-user.target
Проверяем статус и подключаем его и запускаем:
systemctl status myproject
systemctl enable myproject
systemctl start myproject
P.S. Обратите внимание что в nginx у меня папка статики = static (location /static/) У вас как понимаю будет папка assets. И настроена работа по http