首页 > 解决方案 > Django 3(Ubuntu、Nginx、Gunicorn、SSL)中的管理静态文件问题

问题描述

我在我的项目中使用 Django 3.* 并且一切正常,因为我已经从 Certbot 的 Let's Encrypt 安装了 SSL,从那时起我在管理中遇到了提供静态文件的问题。

在此处输入图像描述

我的 Nginx 配置:

server {
    server_name casekam.ru www.casekam.ru;
    
    client_max_body_size 100M;

    location = /favicon.ico { access_log off; log_not_found off; }

    location /static/ {
        alias /home/gleb/casekam/django_shop/django_shop/static/;
    }

    location /media/ {
        alias /home/gleb/casekam/django_shop/django_shop/media/;
    }

    location / {
        include proxy_params;
        proxy_pass http://unix:/run/casekam.sock;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/casekam.ru/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/casekam.ru/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

server {
    if ($host = www.casekam.ru) {
        # return 301 https://$host$request_uri;
        return 301 https://casekam.ru$request_uri;
    } # managed by Certbot


    if ($host = casekam.ru) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name casekam.ru www.casekam.ru;
    return 404; # managed by Certbot
}

无法弄清楚我在哪里错了。将适用于任何提示和提示。

标签: djangonginx

解决方案


改变:

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

# if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

推荐阅读