Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I set HTTP Headers in Ruby/Sinatra app, hosted on Heroku?

Tags:

I've got a working app based in Ruby and Sinatra that is deployed on Heroku.

I want to take advantage of the HTTP caching available on Heroku, which uses Varnish.

I'm not sure what the best way to set the headers is, and the correct syntax.

Any thoughts on the best approach and syntax?

before do     headers "Content-Type" => "text/html; charset=utf8" end  get '/' do     headers['Cache-Control'] = 'public, max-age=600'      # SOME STUFF HERE      haml :home, {:layout => :layout_minfooter}  end 
like image 688
Neil Avatar asked Nov 16 '10 22:11

Neil


2 Answers

Usually dynamically generated pages have no caching so the

response.headers['Cache-Control'] = 'public, max-age=300' 

header is the right starting point.

Try using one of the services at "Use a Web-based service" to see if they show up in the HTTPd header sent back from your site.

like image 64
the Tin Man Avatar answered Sep 26 '22 00:09

the Tin Man


You can also access the header fields of the response object with this syntax:

response['Cache-Control'] = 'public, max-age=600' 
like image 24
Michael Baker Avatar answered Sep 25 '22 00:09

Michael Baker