aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source/caching_with_rails.md
diff options
context:
space:
mode:
authorSantosh Wadghule <santosh.wadghule@gmail.com>2016-07-23 17:16:03 +0530
committerSantosh Wadghule <santosh.wadghule@gmail.com>2016-08-10 20:27:29 +0530
commit80f777e1c0276a022c7a4cb86451d234456d42b5 (patch)
tree21f00e42d5584a9b7abc176b266d15dfddf7f3bb /guides/source/caching_with_rails.md
parent7b31b06d4afd73734ac54cbbac105f0eab8d0d43 (diff)
downloadrails-80f777e1c0276a022c7a4cb86451d234456d42b5.tar.gz
rails-80f777e1c0276a022c7a4cb86451d234456d42b5.tar.bz2
rails-80f777e1c0276a022c7a4cb86451d234456d42b5.zip
Add documentation for `http_cache_forever`. [ci skip]
Diffstat (limited to 'guides/source/caching_with_rails.md')
-rw-r--r--guides/source/caching_with_rails.md24
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