Linux部署django项目时,访问时样式文件加载失败、静态文件加载失败

错误情况一:

在linux部署了Django项目,访问IP时,加载不出来,或 加载样式出不来,通过以下步骤逐一排查:

1、项目运行是否启动?最好打开 Debug模式

 

2、检测端口是否打开?云服务器安全策略?服务器端口?服务器防火墙?

1) 云服务器安全策略 - 到云控制台 添加安全策略
2) 服务器端口 与 服务器防火墙 设置:
    # 查看端口开启状态     firewall-cmd --query-port=6060/tcp     no #未开启   yes # 已开启
    # 开启指定端口         firewall-cmd --add-port=6060/tcp --permanent
    # 重启防火墙             systemctl restart firewalld

 

3、Django项目的settings.py文件配置是否正确? media设置?static设置?

django 报错 : django.core.exceptions.ImproperlyConfigured: The STATICFILES_DIRS setting should not contain the STATIC_ROOT setting

错误原因有可能是在settings中静态文件目录设置的有问题

STATIC_ROOT=os.path.join(BASE_DIR,"static/")#错误
STATIC_ROOT=os.path.join(BASE_DIR,"/static/")#正确

 

4、受 文件权限 影响?  改为 chmod  -R  777  project/

 

错误情况二:

在 linux 下需要用 python-admin 来开 django 的服务,如果你是 python3 那么命令应为 python3-admin manage.py runserver 可以正常访问页面,没有静态加载的问题

在配置 uwsgi 时需要更改项目 settings.py 中的设置,更改项目如下

debug=False

allow_host=[‘*’]

静态文件重定位 STATIC_ROOT =os.path.join(BASE_DIR,”/var/www”)

再进行静态文件的转移 在项目目录下进行: Python3 manage.py collectstatic 这一步的顺序很重要,否则路径会有问题.

然后配置 uwsgi 有许多方法,我采用的是下面的一种 在项目目录下新建 socket.xml 文件(与 manage.py 同级)内容如下:

 

这时可以用下面这个命令去运行项目 Uwsgi –http :8000 –chdir /home/user/project/hello –module hello.wsgi –static-map=/static=/var/www/ 也可以正常访问页面,包括加载静态页面

 

nginx的配置问题

配置 nginx 主要进行两个文件的修改,两个文件都在/etc/nginx 目录下 一个是 nginx.conf,需要修改的内容为: 将第一行定位用户的名字改为你的用户文字,我的是 root 第二个文件时 sites-available/sites-enable 目录下的 default 文件

    哦,还有一步很重要,需要将项目和静态文件的权限更改一下,改为你的用户可以访问,读取,执行,:chmod –R 755 目录.

    参考了链接的方法: https://blog.csdn.net/eightbrother888/article/details/79503716

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值