【Django 028】部署到Nginx之静态资源处理

Django自带的runserver虽然功能全面,动静处理都搞得定,但是毕竟性能低下,生产环境是不能用的。所以有必要结合nginx进行生产环境的部署,这一节我们先来看看静态资源的处理。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

操作环境

  • Django 2.2.10 LTS
  • Python 3.7(Anaconda 3)
  • Nginx 1.16.1

动静分离

首先必须要明白,nginx做为一个web服务器,处理静态资源是其强项,但是其不能完成Django的MTV模型这种动态处理的能力。所以生产环境中必须要做到动静分离,nginx做为主门户,将静态资源自己处理,而其余请求转交给django来处理。如下图所示

1-chart.png

其中①是浏览器发来的http请求,有css、js、图片、文档这一类静态资源请求的时候直接②nginx本地处理。同时nginx通过socket连接到wsgi以及后面的django,当有动态处理需求的时候通过③转交到wsgi再到④django,最后返回。这一节我们主要是看①和②,后面的wsgi+django的配合下一节我们再详细说。

Django的静态资源处理

在真正了解nginx的静态资源处理之前,还是有必要先对django自带的静态资源处理了解清楚,毕竟测试环境还是会用得到的。

想要django自带的runserver能处理静态资源,必须在配置文件settings.py中做如下设定

  • DEBUG = True,这也间接说明了处理静态资源不是自带runserver的强项,记住千万别在生产环境使用

  • STATIC_URL = '/static/',如果是应用级别的静态资源,用该字段声明根目录,数据类型为string

  • 如果是全局的静态资源,用STATICFILES_DIRS字段声明根目录,数据类型为list,例如

    STATICFILES_DIRS = [
        os.path.join
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值