django nginx媒体文件

时间:2017-07-28 11:17:05

标签: django nginx media gunicorn

server { 
#listen 443; 
server_name www.site.md; 

location ~* .(jpg|svg|jpeg|gif|png|ico|css|zip|rar|pdf)$ { 
root /home/ubuntu/giver; 
error_page 404 = 404; 
} 


location = /favicon.ico { access_log off; log_not_found off; } 
location /static/ { 
root /home/ubuntu/giver; 
} 

location / { 
include proxy_params; 
proxy_pass http://unix:/home/ubuntu/giver/server/giver/giver.sock; 
} 

location /media { 
root /home/ubuntu/giver/server/giver/giver/media; # your Django project's media files - amend as required 
} 

如您所见,我已经添加了媒体文件的路径,但它们没有加载... 有谁可以帮助我吗?我在ubuntu 16上使用django 1.10,nginx,gunicorn。

2 个答案:

答案 0 :(得分:1)

尝试将root更改为alias

location /media/ { 
    alias /home/ubuntu/giver/server/giver/giver/media/;
}

然后重启:

sudo service nginx restart

希望它有所帮助!

答案 1 :(得分:1)

查看here,您会看到带有“alias”或“root”的语法:

location /media/ {
    root /home/ubuntu/giver/server/giver/giver;
}

location /media/ {
    alias /home/ubuntu/giver/server/giver/giver/media/;
}

两者都有效,但同一个文档也说当位置路径与文件系统路径末端匹配时(在你的情况下为“/ media”)root是可行的方法。