当启用Rack::Deflater压缩响应正文时,我发现了一些奇怪的问题。也许我漏掉了什么,但启用此功能后,每次请求资源的ETag都会更改,尽管响应已经被压缩。这迫使应用程序每次都需要响应而不是发送304。如果不启用Rack::Deflater,则可以正常工作,并且我已经验证页面源未更改。我正在运行具有thin作为Web服务器的Rails应用程序。
Gemfile.lock https://gist.github.com/2510816
有没有办法让Rack中间件输出更多信息,这样我就能看到发生了什么?
提前感谢。
Rack::ETag
中间件只是为其获取的任何内容创建标签。将其放在Rack::Deflater
之后的中间件堆栈中,它将尝试创建压缩数据的哈希值,这是不正确的。 - Michael SladeGzipWriter
是Rack::Deflater
使用的压缩工具,它会给所有被压缩的内容加上时间戳。 - Michael Slade