diff options
author | Santosh Wadghule <santosh.wadghule@gmail.com> | 2016-07-23 17:16:03 +0530 |
---|---|---|
committer | Santosh Wadghule <santosh.wadghule@gmail.com> | 2016-08-10 20:27:29 +0530 |
commit | 80f777e1c0276a022c7a4cb86451d234456d42b5 (patch) | |
tree | 21f00e42d5584a9b7abc176b266d15dfddf7f3bb | |
parent | 7b31b06d4afd73734ac54cbbac105f0eab8d0d43 (diff) | |
download | rails-80f777e1c0276a022c7a4cb86451d234456d42b5.tar.gz rails-80f777e1c0276a022c7a4cb86451d234456d42b5.tar.bz2 rails-80f777e1c0276a022c7a4cb86451d234456d42b5.zip |
Add documentation for `http_cache_forever`. [ci skip]
-rw-r--r-- | guides/source/caching_with_rails.md | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/guides/source/caching_with_rails.md b/guides/source/caching_with_rails.md index cc84ecb216..a1b0029c47 100644 --- a/guides/source/caching_with_rails.md +++ b/guides/source/caching_with_rails.md @@ -512,6 +512,30 @@ class ProductsController < ApplicationController end ``` +Sometimes we want to cache response, for example a static page, that never gets +expired. To achieve this, we can use `http_cache_forever` helper and by doing +so browser and proxies will cache it indefinitely. + +By default cached responses will be private, cached only on the user's web +browser. To allow proxies to cache the response, set `public: true` to indicate +that they can serve the cached response to all users. + +Using this helper, `last_modified` header is set to `Time.new(2011, 1, 1).utc` +and `expires` header is set to a 100 years. + +WARNING: Use this method carefully as browser/proxy won't be able to invalidate +the cached response unless browser cache is forcefully cleared. + +```ruby +class HomeController < ApplicationController + def index + http_cache_forever(public: true) do + render + end + end +end +``` + ### Strong v/s Weak ETags Rails generates weak ETags by default. Weak ETags allow semantically equivalent |