Mon application Ruby on Rails utilise le code de commande suivante pour générer un fichier sitemap.xml:Rails 'périmé? méthode pour plan du site renvoie toujours HTTP 200
class SitemapController < ApplicationController
layout nil
def index
headers['Content-Type'] = 'application/xml'
last_post = Post.last
if stale?(:etag => last_post, :last_modified => last_post.updated_at.utc)
respond_to do |format|
format.xml { @posts = Post.sitemap } # sitemap is a named scope
end
end
end
end
Ma compréhension est que la méthode stale?
doit assurer un HTTP 304 de réponse Non modifié si le contenu n'a pas changé. Cependant, chaque fois que je tester cela en utilisant la courbure ou un navigateur Web, je reçois toujours un HTTP 200:
$ curl --head localhost:3000/sitemap.xml HTTP/1.1 200 OK Connection: close Date: Mon, 13 Apr 2009 15:50:00 GMT Last-Modified: Wed, 08 Apr 2009 16:52:07 GMT X-Runtime: 100 ETag: "5ff2ed60ddcdecf291e7191e1ad540f6" Cache-Control: private, max-age=0, must-revalidate Content-Type: application/xml; charset=utf-8 Content-Length: 29318
Suis-je utiliser correctement la méthode stale?
? Est-il même possible de le tester localement?
Merci Adam, c'était ça. –
C'est génial, j'espérais que ça vous serait utile. Merci pour la mise à jour! –