压缩

Tango拥有一个默认的压缩中间件,可以按照扩展名来进行文件的压缩。同时,你也可以要求某个Action自动或强制使用某种压缩。比如:

  1. type CompressExample struct {
  2. tango.Compress // 添加这个匿名结构体,要求这个结构体的方法进行自动检测压缩
  3. }
  4. func (CompressExample) Get() string {
  5. return fmt.Sprintf("This is a auto compress text")
  6. }
  7. o := tango.Classic()
  8. o.Get("/", new(CompressExample))
  9. o.Run()

以上代码默认会检测浏览器是否支持压缩,如果支持,则看是否支持gzip,如果支持gzip,则使用gzip压缩,如果支持deflate,则使用deflate压缩。

  1. type GZipExample struct {
  2. tango.GZip // add this for ask compress to GZip, if accept-encoding has no gzip, then not compress
  3. }
  4. func (GZipExample) Get() string {
  5. return fmt.Sprintf("This is a gzip compress text")
  6. }
  7. o := tango.Classic()
  8. o.Get("/", new(GZipExample))
  9. o.Run()

以上代码默认会检测浏览器是否支持gzip压缩,如果支持gzip,则使用gzip压缩,否则不压缩。

  1. type DeflateExample struct {
  2. tango.Deflate // add this for ask compress to Deflate, if not support then not compress
  3. }
  4. func (DeflateExample) Get() string {
  5. return fmt.Sprintf("This is a deflate compress text")
  6. }
  7. o := tango.Classic()
  8. o.Get("/", new(DeflateExample))
  9. o.Run()

以上代码默认会检测浏览器是否支持deflate压缩,如果支持deflate,则使用deflate压缩,否则不压缩。