web-dev-qa-db-ja.com

HerokuでホストされているRuby / SinatraアプリでHTTPヘッダーを設定するにはどうすればよいですか?

Rubyと、HerokuにデプロイされているSinatraをベースにした動作するアプリがあります。

Varnishを使用するHerokuで利用可能なHTTPキャッシングを利用したいと思います。

ヘッダーを設定する最良の方法と正しい構文がわかりません。

最良のアプローチと構文について何か考えはありますか?

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
20
Neil

通常、動的に生成されたページにはキャッシュがないため、

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

ヘッダーは正しい出発点です。

" Webベースのサービスを使用 "のサービスの1つを使用して、サイトから返送されたHTTPdヘッダーにそれらが表示されるかどうかを確認してください。

30
the Tin Man

Sinatraでは、cache_controlメソッドを使用できます。

get '/' do
  # Cache for 24 hours
  cache_control :public, max_age: 86400

  # Your magic goes here
end
0
MikeRogers0

次の構文を使用して、応答オブジェクトのヘッダーフィールドにアクセスすることもできます。

response['Cache-Control'] = 'public, max-age=600'
0
Michael Baker