我现在正在ubuntu 12上使用nginx和gunicorn部署django应用程序。
我配置nginx虚拟主机文件如下:
server {
listen 80;
server_name mydomain.com;
access_log /var/log/nginx/gunicorn.log;
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;
}
location /static/ {
root /var/www/django/ecerp/erp/static/;
}
}
我可以很好地请求django,但是当请求静态文件时,它会以404状态响应。
我确定静态文件的根路径是正确的。
有人可以帮忙吗?
答案 0 :(得分:33)
您应该使用alias
代替root
。 root
将跟踪网址部分附加到您的本地路径(例如http://test.ndd/trailing/part,它将添加/尾随/部分到您的本地路径)。而不是alias
完全符合您的要求:当请求http://test.ndd/static/时,/ static将完全映射到您的别名,而不会再次附加静态。
答案 1 :(得分:6)
TL; DR - 您应该检查文件权限
偶然发现了这个问题,我已经在使用root
而不是root了,所以虽然现有的答案已达到要点,但以下内容可能对其他人有用。
就我而言,相同症状的解决方案原来是chown www-data:www-data .
中404
为所有者的文件。
一个简单的this
解决了这个问题,而且不再是function(point){
return (
<div key={point}>{this.renderInnerContent()}</div>
)
}
。