Djang1.8+Nginx 静态文件的部署问题

在Django 1.8项目中,使用Nginx部署静态文件时遇到403 Forbidden错误。通过将Nginx配置文件中的user从nobody改为root,问题得到解决。在settings.py中配置STATIC_URL,并执行`python manage.py collectstatic`将静态文件收集到指定目录。当通过curl测试时,发现8080端口下的css文件访问正常,而80端口则返回Nginx的404页面。经检查,问题出在nginx.conf配置上,修正配置后,Nginx成功服务于静态文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 的问题解决成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值