def call(env)
status, headers, response = @app.call(env)
if response.is_a? Array
puts response.inspect
else
puts response.class.to_s
end
[status, headers, response]
end
De development.log:Rails3 réponse Rack - méthode non définie response.body
Première demande:
Completed 200 OK in 95ms (Views: 35.9ms | ActiveRecord: 1.5ms)
ActionDispatch::Response
deuxième et autres demandes:
Completed 200 OK in 77ms (Views: 76.3ms | ActiveRecord: 0.0ms)
[]
réponse
est un: ActionDispatch::Response
la première fois qu'une route est appelée, pour toute autre demande pour cette URL exacte, il s'agit d'un 01 vide
La page s'affiche correctement dans les deux cas, mais je ne peux pas utiliser response.body
lorsque la réponse est un tableau vide.
Est-ce un comportement normal de Rails? Y a-t-il un cache ici même dans un environnement de développement?
Vous avez raison, et je pense Les en-têtes "eTag" provoquent le statut 304. – Mirko
Oui, cela semble correct. Je pense que la plupart des sites devraient maintenant supporter les en-têtes eTag car ils économisent de la bande passante et permettent des chargements de pages plus rapides si le site est inchangé par rapport à une visite précédente. Cela dit, cela ne fait pas vraiment de différence pour les petits sites web, et n'est probablement pas visible en mode développement (puisque vous avez une latence proche de zéro pour votre demande de page) –