gpt4 book ai didi

ruby-on-rails - 启用 Rack::Deflater 时 ETag 发生变化

转载 作者:数据小太阳 更新时间:2023-10-29 07:13:00 24 4
gpt4 key购买 nike

在启用 Rack::Deflater 来 gzip 我的响应主体时偶然发现了一些奇怪的东西。也许我遗漏了一些东西,但启用此功能后,响应被压缩,但是资源的 ETag 在每个请求上都会发生变化。这会强制应用程序每次都响应,而不是发送 304。这在没有启用 Rack::Deflater 的情况下有效,我已经验证页面源没有改变。我正在运行一个使用 thin 作为 Web 服务器的 Rails 应用程序。

Gemfile.lock https://gist.github.com/2510816

有没有什么方法可以让我从 Rack 中间件获得更多的输出,这样我就可以看到发生了什么?

提前致谢。

最佳答案

所以我已经解决了原来的问题,但仍然没有得到预期的结果。原来 Rack::Deflater 需要在中间件堆栈中的 Rack::ETag 之前。仍然不确定为什么这会导致 ETag 更改每个请求,但如果我将 config.middleware.use "Rack::Deflater" 更改为 就足够了
config.middleware.insert_before "Rack::ETag", "Rack::Deflater"
然后 ETag 在请求之间变得一致。我仍然没有收到 304,但我认为那是因为缓存控制 header 不正确并且与原始问题无关。希望这对将来的人有所帮助。

关于ruby-on-rails - 启用 Rack::Deflater 时 ETag 发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10354921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com