Сервер Nginx не загружает статические файлы css
Я пытаюсь развернуть свой django сайт на сервере ubuntu nginx, следуя этому руководству (https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu).
Развертывание работает, но css не работает. Я решил, что это что-то с collectstatic, но не уверен. Забавно, что css работает правильно для порта 0.0.0.0:8000.
Это из файла settings.py
STATIC_URL = 'static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
Я заметил в учебнике, что у них нет STATICFILES_DIRS... и... STATIC_URL и STATIC_ROOT одинаковы 'static'
. Может ли это быть проблемой?
также, попробовал отредактировать путь к статике с помощью sudo nano /etc/nginx/sites-available/django_project
server {
listen 80;
server_name xxx.xx.xx.xxx; #my ip, just hide it for purpose of question
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
alias /home/muser/django_project/static/;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
}
Есть идеи, что я сделал не так? Заранее спасибо!
Вы используете неправильные настройки. Насколько я знаю, статические корни используются только в режиме отладки. Если режим отладки не включен, то должен использоваться статический корень. А статический корень, который вы установили, отличается от статического корня nginx.
и не забудьте python manage.py collectstatic
.
STATIC_ROOT = os.path.join(BASE_DIR, 'static'),
STATICFILES_DIRS = []
Если вы умеете читать по-корейски, эта ссылка может оказаться полезной.
я увидел проблему в конфигурации nginx в блоке статического расположения, где вы указали путь к статической папке
location /static/ {
alias /home/muser/django_project/static/;
}
в местоположении вы указываете путь к папке static, который нужно изменить на staticfiles
location /static/ {
alias /home/muser/django_project/staticfiles/;
}
потому что вы указали имя корневой папки static_root - staticfiles
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
и не забудьте выполнить эту команду, чтобы создать папку staticfiles.
python manage.py collectstatic
Надеюсь, это решит вашу проблему.