Weak ETAGs in Rails?

前端 未结 4 1589
你的背包
你的背包 2020-12-16 03:20

What is the best way to tell rails to use weak instead of strong ETAGs when using methods fresh_when and stale??

The reason I ask is that

4条回答
  •  感情败类
    2020-12-16 03:43

    I took the code from @grosser's answer and turned it into a Gem:

    • https://rubygems.org/gems/rails_weak_etags
    • https://github.com/johnnaegle/rails_weak_etags

    You can just add this to your gemfile:

    gem 'rails_weak_etags'
    

    And it will be installed into your middleware before Rack::ConditionalGet:

    > bundle exec rake middleware
    ....
    use RailsWeakEtags::Middleware
    use Rack::ConditionalGet
    use Rack::ETag
    ....
    

    Then all the e-tags generated by rails, either with Rack::ETag or with explicit e-tags will be converted to weak. Using a patched, or version > 1.7.3 of nginx, will then let you use e-tags and gzip compression.

    RACK 1.6 defaults etags to weak - this gem is no longer helpful if you upgrade.

提交回复
热议问题