Come faccio a impostare le intestazioni HTTP in Ruby / Sinatra app, ospitato su Heroku?
-
11-10-2019 - |
Domanda
Ho un app di lavoro con sede a Ruby e Sinatra che viene distribuito su Heroku.
Voglio approfittare del HTTP caching accessibile Heroku, che utilizza vernice.
Non sono sicuro di ciò che il modo migliore per impostare le intestazioni è, e la sintassi corretta.
Ogni pensiero su l'approccio migliore e la sintassi?
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
Soluzione
Di solito le pagine generate dinamicamente non hanno la cache in modo che il
response.headers['Cache-Control'] = 'public, max-age=300'
intestazione è il giusto punto di partenza.
Prova utilizzando uno dei servizi a " Utilizzare un servizio Web-based " per vedere se si fanno vedere in HTTPd intestazione posteriore inviato dal tuo sito.
Altri suggerimenti
È anche possibile accedere ai campi di intestazione dell'oggetto di risposta con la seguente sintassi:
response['Cache-Control'] = 'public, max-age=600'
In Sinatra è possibile utilizzare il metodo cache_control
:
get '/' do
# Cache for 24 hours
cache_control :public, max_age: 86400
# Your magic goes here
end