Nginx静态文件无法加载Django

3
Nginx无法加载Django静态文件。
Nginx配置:
upstream backend {
    server localhost:8000;
}

server {
        server_name wavera.ru www.wavera.ru;
           location / {
            include proxy_params;
               proxy_pass http://backend;
        }
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.wavera.ru/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/www.wavera.ru/privkey.pem;
    include /etc/letsencrypt/options-ssl-nginx.conf;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    location /static/ {
        alias /root/labelEngine/labelApp/static/;
    }

    location /media/ {
        alias /root/labelEngine/media/;
    }
    
}

server {
    if ($host = wavera.ru) {
        return 301 https://$host$request_uri;
    }
    if ($host = www.wavera.ru) {
        return 301 https://$host$request_uri;
    }
    listen 80 ;
    server_name wavera.ru www.wavera.ru;
    return 404;
}


静态文件目录:

媒体文件目录:

静态文件的 settings.py:

STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
MEDIA_URL = "/media/"

此外,URL还具有以下特点:

 + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

换句话说,我只想关闭调试模式,并确保我的网站和静态/媒体文件能够正常工作。我尝试通过使用WhiteNoise来实现这一点,但它不支持媒体文件,所以我尝试设置nginx配置文件。我做错了什么?

2个回答

2

你是否尝试过配置nginx并创建新用户?请按照digitalocean的django应用程序部署教程使用nginx和gunicorn。但是首先要创建一个新用户,在他们的网站上可以找到相关指南。


2

一个可能的答案是,通过更改用户,您应该能够访问资源。在 "nginx.conf" 文件中,在顶部,您可以使用以下字符串添加/编辑访问资源的用户:

user "USER_PROJECT_OWNER";


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接