CSS не работает после применения collectstatic в Django

Я только что развернул свой проект django на сервере nginx. Я подключился к домену и все, сайт работает. Однако проблема возникла, когда я использовал python3 manage.py collectstatic. Все по-прежнему работает, но css не загружается, и сайт выглядит не так, как должен быть.

Вот код и варианты, которые я пробовал. части из settings.py

BASE_DIR = Path(__file__).resolve().parent.parent

ALLOWED_HOSTS = ['my-wow-site.com', 'www.my-wow-site.com', 'xx.xx.xxx.xx']

STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

STATIC_URL = 'static/'

STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static'),
]

urls.py

urlpatterns = i18n_patterns(
    path(_('admin/'), admin.site.urls),
    path('rosetta/', include('rosetta.urls')),
    path('', include('main_app.urls', namespace='main_app')),
    path('sitemap.xml', sitemap, {'sitemaps': sitemaps}, name='django.contrib.sitemaps.views.sitemap'),
    path('ckeditor/', include('ckeditor_uploader.urls')),
)
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
    urlpatterns += static(settings.STATIC_URL,document_root=settings.STATIC_ROOT)

У меня все загружено/развернуто в корневой папке... и я установил это с помощью команды

sudo nano /etc/nginx/sites-available/default

Контент - это...

server {
    listen 80;
    server_name my-wow-site.com www.my-wow-site.com;
    return 301 https://$host$request_uri;

    root /root/wow_site/

    location /static/ {
        alias /root/wow_site/staticfiles/;
    }
    location /media/ {
        alias /root/wow_site/media/;
    }
}

server {
    listen 443 ssl;
    server_name my-wow-site.com www.my-wow-site.com;

    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://localhost:8000; # Adjust as necessary for your application
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Обычно источники из Интернета подсказывают мне, как установить это (ниже), что я и сделал.

    location /static/ {
        alias /root/wow_site/staticfiles/;
    }

Не знаю, что еще можно сделать или в чем я ошибся. Любая помощь будет более чем приветствоваться. Заранее спасибо!

вы используете соединение https, но разрешаете статическое соединение только http.

Итак, я думаю, проблема в том...

нужно изменить конфигурацию и перезапустить nginx.

server {
    listen 80;
    server_name my-wow-site.com www.my-wow-site.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name my-wow-site.com www.my-wow-site.com;

    ssl_certificate /etc/nginx/ssl/nginx.crt;
    ssl_certificate_key /etc/nginx/ssl/nginx.key;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    location /static/ {
        alias /root/wow_site/staticfiles/;
    }
    location /media/ {
        alias /root/wow_site/media/;
    }
    location / {
        proxy_pass http://localhost:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
Вернуться на верх