Djang1.8+Nginx 静态文件的部署问题
参考:https://blog.youkuaiyun.com/u010098331/article/details/63262523
https://blog.youkuaiyun.com/onlysunnyboy/article/details/75270533
setting.py中是这样配置的:
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
运行python manage.py collectstatic 之后所有app下的static文件复制到了站点根目录下的static文件夹下
nginx不需要其他的设置
但是默认的 user nobody 时 , 访问静态文件是
403 Forbidden
修改为user root 之后一切正常
运行python manage.py collectstatic 时
django.core.exceptions.ImproperlyConfigured: You're using the staticfiles app without having set the required STATIC_URL setting.
修改为STATIC_URL= os.path.join(BASE_DIR,'static')
报错:
django.core.exceptions.ImproperlyConfigured: If set, STATIC_URL must end with a slash
原来要这样
STATIC_URL= os.path.join(BASE_DIR,’static/’)
用curl 8080 端口下的css文件时,没有404,
用curl 80 端口时却直接返回nginx设置的404页面
最后确认是nginx.conf配置错误:
#静态文件,nginx自己处理
#location ~\static\ {
# root /root/fyping.cn/finger_blog/website/static;
#}
####这是错误的配法 url访问所有url含有static都代理掉了
location ~ \.(png|gif|jpg|jpeg)$ {
root /root/fyping.cn/finger_blog/website/static;
}
location ~ ^/(images|javascript|js|css|flash|media)/ {
root /root/fyping.cn/finger_blog/website/static;
}
##注意 root 后跟的是一个绝对地址, root后面需要一个空格
最终Nginx 的问题解决成功