expires_in
expires_in(seconds, options = {})Sets an HTTP 1.1 Cache-Control header. Defaults to issuing a private instruction, so that intermediate caches must not cache the response.
expires_in 20.minutes expires_in 3.hours, public: true expires_in 3.hours, public: true, must_revalidate: true
This method will overwrite an existing Cache-Control header. See www.w3.org/Protocols/rfc2616/rfc2616-sec14.html for more possibilities.
HTTP Cache-Control Extensions for Stale Content. See tools.ietf.org/html/rfc5861 It helps to cache an asset and serve it while is being revalidated and/or returning with an error.
expires_in 3.hours, public: true, stale_while_revalidate: 60.seconds expires_in 3.hours, public: true, stale_while_revalidate: 60.seconds, stale_if_error: 5.minutes
HTTP Cache-Control Extensions other values: developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control Any additional key-value pairs are concatenated onto the `Cache-Control` header in the response:
expires_in 3.hours, public: true, "s-maxage": 3.hours, "no-transform": true
The method will also ensure an HTTP Date header for client compatibility.
1Note
This doesn't write files
This doesn't write files, at least not anymore. Since at least rails 4 Rack::Cache isn't included by default. In any case this method only ever set headers on the response.