Python Django静态文件和nginx

Python Django静态文件和nginx,python,django,nginx,Python,Django,Nginx,当我通过nginx在example.org(不是实际的ip)加载服务器时,内容显示得很好。 但是,诸如css和js之类的静态文件不会显示。需要做什么 是否更改以显示静态文件?我只是在nginx上运行python manage.py runserver来检查文件是否被馈送,但只有模板显示没有静态文件 实际的静态文件夹(css/js/img)位于 我有/etc/nginx/sites可用/myproject作为 server { listen 80; server_name exam

当我通过nginx在example.org(不是实际的ip)加载服务器时,内容显示得很好。 但是,诸如css和js之类的静态文件不会显示。需要做什么 是否更改以显示静态文件?我只是在nginx上运行python manage.py runserver来检查文件是否被馈送,但只有模板显示没有静态文件

实际的静态文件夹(css/js/img)位于

我有/etc/nginx/sites可用/myproject作为

server {
    listen 80;
    server_name example.org; ##not actual ip
    access_log /var/log/nginx/example.log;

    location /static/ { 
        alias /opt/myenv/static/; 
    }

    location / {
        proxy_pass http://127.0.0.1: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;
    }
}
这是我为/opt/myenv/myproject/mysite/settings.py准备的

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

是否使用命令收集静态文件?:

python manage.py collectstatic
我还认为,您为static文件夹定义的路径中存在错误,不应该是:

location /static/ { 
    alias /opt/myenv/myproject/static/; 
}
而不是:

location /static/ { 
    alias /opt/myenv/static/; 
}

在您的问题中,您声明您的静态资源文件位于
/opt/myenv/myproject/myproject/static
,但您的
nginx
配置文件将它们放置在
/opt/myenv/static

此外,您还可以使用
别名
,其中
将是。尝试:

location /static/ { 
    alias /opt/myenv/static/; 
}
location /static {
    root /opt/myenv/myproject/myproject;
}