CSS не отображается в Django с NGINX и uWSGI
Это мой первый настоящий проект Django, и я пытаюсь настроить его для производства, используя NGINX и uWSGI. Он работает на сервере Digital Ocean Ubuntu. Все настроено и работает, кроме обслуживания статических CSS файлов. Странно то, что статические изображения и файлы JavaScript обслуживаются нормально, единственное, что не обслуживается - это CSS.
Вот как выглядит файл конфигурации моего сайта для NGINX ("nebula" - пользователь Ubuntu и название проекта Django):
# configuration of the server
server {
server_name example.com www.example.com;
charset utf-8;
# max upload size
client_max_body_size 75M;
# Django media and static files
location /media {
alias /home/nebula/nebula/media;
}
location /static {
alias /home/nebula/nebula/assets;
}
# Send all non-media requests to the Django server.
location / {
uwsgi_pass django;
include /home/nebula/nebula/uwsgi_params;
}
}
Вот как выглядит мой файл Settings.py:
BASE_DIR = Path(__file__).resolve().parent.parent
STATIC_URL = '/assets/'
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
STATIC_ROOT = os.path.join(BASE_DIR, "assets/")
STATICFILES_DIRS = ( os.path.join(BASE_DIR,'media/'),)
Вот как выглядит мой базовый каталог (assets и static одинаковы, я продублировал его в попытке решить проблему):
assets demo.py media nebula.sock static uwsgi_params
db.sqlite3 manage.py nebula nebula_uwsgi.ini set store
Это внутри 'assets/':
admin css images jazzmin js vendor
Спасибо
Путь расположения статических файлов в конфигурации nginx должен соответствовать вашим настройкам STATIC_URL
location /assets {
alias /home/nebula/nebula/assets;
}
Кажется, что здесь может быть проблема
Попробуйте изменить
STATICFILES_DIRS = ( os.path.join(BASE_DIR,'media/'),)
to
STATICFILES_DIRS = ( os.path.join(BASE_DIR,'assets/'),)