Rails中的弱ETAG?

Kap*_*old 8 etag ruby-on-rails http nginx

什么是告诉Rails用最好的方式弱而不强ETag的使用方法时,fresh_whenstale?

我问的原因是nginx(正确)在启用动态gzipping时从响应中删除强ETAG头.

Joh*_*gle 6

我从@ grosser的答案中取出代码并将其转换为Gem:

你可以将它添加到你的gemfile:

gem 'rails_weak_etags'
Run Code Online (Sandbox Code Playgroud)

它将被安装到您的中间件之前Rack::ConditionalGet:

> bundle exec rake middleware
....
use RailsWeakEtags::Middleware
use Rack::ConditionalGet
use Rack::ETag
....
Run Code Online (Sandbox Code Playgroud)

然后,rails生成的所有电子标签,无论是使用Rack :: ETag还是使用显式电子标签,都将转换为弱电子标签.使用补丁或版本> 1.7.3的nginx,然后将允许您使用电子标签和gzip压缩.

RACK 1.6默认etags为弱 - 如果升级,这个gem不再有用.