使用uwsgi 部署django 解决静态文件问题

问题

Django本身不提供文件服务,它把这个任务留给你选择的Web服务器。这是Django帮助文档的原话:

Django doesn’t serve files itself; it leaves that job to whichever Web server you choose.

Django很贴心的提供了一个“静态文件收集”的功能,把所有的静态文件收集到一处,由Web服务器提供,通常是Nginx或者Apache。

我认为,这跟Django的“模块化”的设计理念是相悖的,难道静态文件不是“模块”的一部分?这让模块的复用徒增烦恼。

2019年5月21日修订:现在我知道了django这么做的智慧所在,由于it工业前端、后端的分工,这样做可以把两者的工作隔离开。
 

思考

Django官方推荐的方法,是使用Nginx或者Apache提供静态文件。百度、谷歌搜索来的方案也多是这两种。

实际上,我的网站并没有使用任何静态文件,我的静态文件是由unpkg.com提供的,需要本地提供的,仅仅是Django自己的admin的静态文件。

总共119个css、js之类的文件,用户仅限管理员。动用Nginx或者Apache,四八四太劳师动众了?

反正,看着Django给出的Nginx或者Apache的配置文档,就觉得头疼。主要还是懒。

虽然说,uwsgi“不擅长处理静态文件”,但我决定试一试。
 

方法

1 设置setting.py
STATIC_ROOT =os.path.join( BASE_DIR, 'static/' )

2 创建文件夹
在项目路径下创建。

$ mkdir static

3 收集静态文件
$ python manage.py collectstatic

4 修改uwsgi.ini
static-map = /static=<项目路径>/static

5 启动
$ uwsgi --ini uwsgi.ini
 

uwsgi nginx常用命令

启动:uwsgi --ini uwsgi.ini
停止:uwsgi --stop uwsgi.pid
重启:uwsgi --reload uwsgi.pid

nginx:

    service nginx start   #启动
    service nginx stop    #停止
    service nginx reload  #重启

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值