如何使用django和nginx配置静态和媒体文件?

时间:2017-12-08 18:24:34

标签: python django nginx

我的本​​地服务器上有下一个settings.py。

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
)
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), "static_root")
MEDIA_URL = '/media/'
MEDIA_ROOT= os.path.join(os.path.dirname(BASE_DIR), "media_root")

我知道在制作中Nginx应该处理静态和媒体。好的。 我在我的prod服务器上使用gunicorn和supervisor。 我的nginx配置:

server {
    listen 8000;
    server_name 194.87.95.46;
    access_log  /var/log/nginx/example.log;

    location /static {
        alias /home/split/static_root/;
    }


     location /media {
        alias /home/split/media_root/;
    }

    location / {
        proxy_pass http://127.0.0.1:8003;
        proxy_set_header Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
  }

但是nginx没有处理静态和媒体,问题是什么?

1 个答案:

答案 0 :(得分:0)

认为你的问题是由尾部斜杠引起的 - 你没有在位置定义中提供一个尾部斜杠,但你有别名。试试这个:

location /static/ {
    alias /home/split/static_root/;
}

location /media/ {
    alias /home/split/media_root/;
}