前言

GZIP是网站压缩加速的一种技术,对于开启后可以加快我们网站的打开速度,原理是经过服务器压缩,客户端浏览器快速解压的原理,可以大大减少了网站的流量。

  • 什么是gzip?

GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNⅨ系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。现今已经成为Internet 上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

  • gzip有什么好处?

Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度。

上一篇文章 上线一款 在线 Pornhub & Youtube Logo 生成器
提到过nodejs项目gzip压缩实现网站打开速度提升,今天试着将我的typecho和Django项目也开启gzip压缩。

  • Tpyecho开启gzip压缩的方法

在typecho项目的 index.php 中添加一段代码,代码如下:

注意,是整个网站根目下的index.php文件,不是在主题目录下的。

<?php   
/**  
 - Typecho Blog Platform  
 -  
 - @copyright  Copyright (c) 2008 Typecho team (http://www.typecho.org)  
 - @license    GNU General Public License 2.0  
 - @version    $Id: index.php 1153 2009-07-02 10:53:22Z magike.net $  
 */  
/**添加下面的代码*/    
/** 开启gzip压缩, add by yovisun */  
ob_start('ob_gzhandler');  
  • Django开启gzip压缩的方法

1.python安装django_compress库
pip install django_compressor

2.Add 'compressor' to your INSTALLED_APPS setting:

INSTALLED_APPS = (
    # other apps
    "compressor",
)

3.如果配置了django的 staticfiles,那就需要添加相应的目录

STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
'django.contrib.staticfiles.finders.FileSystemFinder',
'compressor.finders.CompressorFinder',)

这样就做好了前期配置,以下为实例展示:
处理css

{% load compress %}

{% compress css %}
<link rel="stylesheet" href="/static/css/one.css" type="text/css" charset="utf-8">
<style type="text/css">p { border:5px solid green;}</style>
<link rel="stylesheet" href="/static/css/two.css" type="text/css" charset="utf-8">
{% endcompress %}

处理js

{% compress js %}
<script src="{% static "js/jquery-1.10.2.js" %}"></script>
<script src="{% static "js/bootstrap.js" %}"></script>
<script src="{% static "js/blog.js" %}"></script>
{% endcompress %}

再运行
python3 manage.py compress --force

最后网页返回结果为:

<link rel="stylesheet" href="/static/CACHE/css/f18b10165eed.css" type="text/css">
<script type="text/javascript" src="/static/CACHE/js/9d1f64ba50fc.js"></script>