解决 uwsgi+nginx+django 部署服务器后 CSS 样式丢失的问题

问题:

使用 uwsgi+nginx+django 部署到服务器后出现 css 样式丢失,类似下图效果:
lose css


原因:

nginx除了提供反向代理,负载均衡以外,还提供了静(html, css, js)动(视图,模板需要进行解析执行的,或者操作数据库的)分离的功能。

  • 原本django项目中的静态资源存放在static文件夹中,其中包含我们自己的html,css,js等。
  • admin模块拥有的静态资源没有在static文件夹下,nginx中配置的会从static目录下寻找静态资源。

nginx为什么只从配置路径中寻找静态资源:

因为处理静态和处理动态资源所消耗的性能和是不一样的。原本静态和动态都是在django项目中,而且django项目运行在uwsgi中,所以动静态都是由uwsgi处理。有了nginx之后,静态资源我们交给nginx处理,nginx处理静态资源的性能极高。


解决方法:

  1. 项目目录下setting.py中添加如下代码:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR,'static')
  1. 在该目录下运行如下命令:
python manage.py collectstatic

该命令用于收集当前项目所依赖的所有的静态资源,然后存放在某一个目录下,默认存放在setting中配置的STATIC_ROOT 的目录下

  1. 在nginx.conf(/etc/nginx/)中配置如下代码:
 location /static {
	# 指定静态文件存放的目录
	alias /src/www/novel/static/;
}
  1. 运行以下命令停止uwsgi服务:
sudo pkill -f uwsgi -9 
  1. 进入uwsgi.ini目录下执行以下命令,启动uwsgi服务:
uwsgi --ini uwsgi.ini
  1. 然后刷新admin的页面就可以了!
    success
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值