Skip to content

Latest commit

 

History

History
80 lines (62 loc) · 1.54 KB

gzip.md

File metadata and controls

80 lines (62 loc) · 1.54 KB

Gzip 压缩

中间件 gzip 为 Macaron 实例 的响应内容提供 Gzip 压缩。请确保在其它会向响应流写入内容的中间件之前注册该服务。

下载安装

go get github.com/go-macaron/gzip

使用示例

package main

import (
	"github.com/go-macaron/gzip"
	"gopkg.in/macaron.v1"
)

func main() {
	m := macaron.Classic()
	m.Use(gzip.Gziper())
	// 注册路由
	m.Run()
}

在这个例子中,静态资源不会被 Gzip 压缩,如果想压缩它们,则可以使用以下方法:

package main

import (
	"github.com/go-macaron/gzip"
	"gopkg.in/macaron.v1"
)

func main() {
	m := macaron.New()
	m.Use(macaron.Logger())
	m.Use(macaron.Recovery())
	m.Use(gzip.Gziper())
	m.Use(macaron.Static("public"))
	// 注册路由
	m.Run()
}

或者选择只压缩某一组路由的响应内容:

// ...

func main() {
	m := macaron.Classic()
	m.Group("/gzip", func() {
		// ...
	}, gzip.Gziper())
	// ...
	m.Run()
}

自定义选项

该服务允许接受一个参数来进行自定义选项(gzip.Options):

// ...
m.Use(gzip.Gziper(gzip.Options{
	// 压缩级别,可以是 DefaultCompression(-1)、ConstantCompression(-2)
	// 或介于包括 BestSpeed(1) 和 BestCompression(9) 在内,这两者之间的任意整数。
	// 默认为 4
	CompressionLevel: 4,
}))