在准嵌入式环境中,速度就是一切。我发现,如果我压缩我的.html文件,应用程序会更快。 Martini中是否有标志或方法可以动态执行此操作?
答案 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的答案确实有效:
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()
}
go run main.go
这是您必须记住包含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