Forum: Ruby on Rails Why is max-age in config.static_cache_control being ignored?

48e5a8f8e4739bf7930a0de03311b634?d=identicon&s=25 Cary Cherng (Guest)
on 2012-10-18 04:16
(Received via mailing list)
In config/environments/production.rb I have set

config.serve_static_assets = true
config.static_cache_control = "public, max-age=1000"

But the response header for application-fingerprint.css is something
like
the following where you can see max-age hasn't been changed to 1000. I'm
assuming this is the result of some interaction with rack-cache but I
don't
know how to solve my problem.

Age:2943
Cache-Control:public, max-age=3600
Connection:Keep-Alive
Content-Encoding:gzip
Content-Length:13851
Content-Type:text/css
Date:Thu, 18 Oct 2012 01:24:20 GMT
Last-Modified:Sat, 13 Oct 2012 02:52:50 GMT
Server:WEBrick/1.3.1 (Ruby/1.9.3/2012-04-20)
Vary:Accept-Encoding
X-Content-Digest:94af71be4b455214a008971627ca52b848e40fc1
X-Rack-Cache:fresh
52f3528c40e9cf28ad0900886eecb128?d=identicon&s=25 Jordon Bedwell (Guest)
on 2012-10-18 09:15
(Received via mailing list)
On Wed, Oct 17, 2012 at 9:15 PM, Cary Cherng <ccherng@gmail.com> wrote:
> In config/environments/production.rb I have set
>
> config.serve_static_assets = true
> config.static_cache_control = "public, max-age=1000"

If I remember right, anything served from /app/assets is not
considered static to the system because it requires more to route it,
but anything in /public should be considered a static asset and will
fall under your cache control.  Since I normally handle all my headers
via Apache or Nginx I don't remember if this is entirely the case
anymore but again if I remember right everything again in /app/assets
is considered compiled on the fly unless you compile it to /public.
48e5a8f8e4739bf7930a0de03311b634?d=identicon&s=25 Cary Cherng (Guest)
on 2012-10-19 00:18
(Received via mailing list)
I solved my problem by running
RAILS_ENV=production bundle exec rake assets:precompile

It appears that the setting for config.static_cache_control is being
lazily
cached.

If I do the following, I get back max-age=1000 in the response header

config.static_cache_control = "public, max-age=1000"
precompile assets
start webrick
visit webpage

However if I do the following I don't get back max-age=1000, instead I
get
max-age=2000

config.static_cache_control = "public, max-age=1000"
precompile assets
start webrick
close webrick
config.static_cache_control = "public, max-age=2000"
start webrick
visit webpage

Can someone explain to me how this is possible and give a model for how
config.static_cache_control is being saved?
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.