彻底搞懂Django静态文件管理

为什么要管理静态文件

Django官方教程说:

We recommend using a separate Web server – i.e., one that’s not also running Django – for serving media.

即建议用个额外的web服务器处理静态文件。实际部署过程中,常用Nginx作为反向代理服务器以及静态文件服务器。

对于静态文件的处理很麻烦,因为在开发模式和实际部署时还会有区别。很多教程上来就是怎么做,而不说为什么要那样做。

那么,到底为什么呢?

在Stack Overflow上找到的答案是:为了效率

  1. 把静态文件放到另一个服务器,甚至另一个域/子域,能大幅优化对它们的处理(比如用Nginx)
  2. 能减少网络阻塞。如果静态文件和动态应用在同一个域内,浏览器访问静态文件时,就会把域的cookies也放到请求里,其实是没必要的;如果静态文件在另一个域内,该域就可以配置为无需cookies的域(cookieless domain)。

接下来问题又来了,为什么小小的cookies会这么影响效率呢?因为网络访问过程中,上传和下载是不对等的,至少是1:10,且一般只对下载做压缩,对上传不做。所以谷歌说了:

The best way to cut down on client request time is to reduce the number of bytes uploaded as request header data. So, minimize request size and serve static content from a cookieless domain. – developers.google.com

详见:Why you need a cookie-less domain

Django开发环境静态文件管理

开发模式下,有两种方法:使用 django.contrib.staticfiles自动管理,或手工配置。

使用 django.contrib.staticfiles 自动管理

Djan

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值