无论如何用Martini压缩HTML输出?

时间:2014-06-06 18:15:28

标签: go martini

在准嵌入式环境中,速度就是一切。我发现,如果我压缩我的.html文件,应用程序会更快。 Martini中是否有标志或方法可以动态执行此操作?

2 个答案:

答案 0 :(得分:5)

您可以使用gzip中间件

https://github.com/codegangsta/martini-contrib/tree/master/gzip

import (
  "github.com/codegangsta/martini"
  "github.com/codegangsta/martini-contrib/gzip"
)

func main() {
  m := martini.Classic()
  // gzip every request
  m.Use(gzip.All())
  m.Run()
}

答案 1 :(得分:5)

这个答案只是为了表明@ fabrizioM的答案确实有效:

第1步:创建服务器

package main

import (
        "github.com/codegangsta/martini"
        "github.com/codegangsta/martini-contrib/gzip"
)

func main() {
        m := martini.Classic()
        // gzip every request
        m.Use(gzip.All())
        m.Get("/hello", func() string {
                return "Hello, World!"
        })
        m.Run()
}

第2步:运行服务器

go run main.go

第3步:尝试服务器

这是您必须记住包含Accept-Encoding: gzip标题(或等效标题)的步骤。

没有压缩:

curl --dump-header http://localhost:3000/hello
HTTP/1.1 200 OK
Date: Wed, 09 Jul 2014 17:19:35 GMT
Content-Length: 13
Content-Type: text/plain; charset=utf-8

Hello, World!

压缩:

curl --dump-header http://localhost:3000/hello -H 'Accept-Encoding: gzip'
HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: text/plain; charset=utf-8
Vary: Accept-Encoding
Date: Wed, 09 Jul 2014 17:21:02 GMT
Content-Length: 37

�       n��Q��J