跳至主要内容
版本:v2.x

压缩

适用于 Fiber 的压缩中间件,它将根据 Accept-Encoding 头部使用 gzipdeflatebrotli 压缩来压缩响应。

注意

压缩中间件不会压缩小于 200 字节的主体。做出此决策的原因是,在这些情况下,压缩大小可能会超过原始大小,从而使压缩效率低下。 更多

签名

func New(config ...Config) fiber.Handler

示例

导入 Fiber Web 框架中包含的中间件包

import (
"github.com/gofiber/fiber/v2"
"github.com/gofiber/fiber/v2/middleware/compress"
)

在启动 Fiber 应用程序后,可以使用以下可能性

// Initialize default config
app.Use(compress.New())

// Or extend your config for customization
app.Use(compress.New(compress.Config{
Level: compress.LevelBestSpeed, // 1
}))

// Skip middleware for specific routes
app.Use(compress.New(compress.Config{
Next: func(c *fiber.Ctx) bool {
return c.Path() == "/dont_compress"
},
Level: compress.LevelBestSpeed, // 1
}))

配置

配置

属性类型说明默认值
下一步func(*fiber.Ctx) boolNext 定义了一个函数,在返回 true 时跳过此中间件。nil
级别级别级别确定压缩算法。LevelDefault (0)

“级别”字段的可能值为

  • LevelDisabled (-1):禁用压缩。
  • LevelDefault (0):默认压缩级别。
  • LevelBestSpeed (1):最佳压缩速度。
  • LevelBestCompression (2):最佳压缩。

默认配置

var ConfigDefault = Config{
Next: nil,
Level: LevelDefault,
}

常量

// Compression levels
const (
LevelDisabled = -1
LevelDefault = 0
LevelBestSpeed = 1
LevelBestCompression = 2
)