Meinen Ruby on Rails-Anwendung den folgenden Controller-Code verwendet eine sitemap.xml-Datei zu generieren:Schienen alt? Verfahren zur Sitemap gibt immer 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
Mein Verständnis ist, dass die stale?
Methode eine HTTP 304 nicht geändert Antwort sicherstellen soll, wenn Der Inhalt hat sich nicht geändert. wenn ich jedoch testen diese mit curl oder einen Web-Browser ich immer eine HTTP-200 erhalten:
$ 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
Bin ich richtig stale?
Methode? Ist es sogar möglich, das lokal zu testen?
Danke Adam, das war es. –
Das ist großartig, ich hatte gehofft, es wäre hilfreich für dich. Danke für das Update! –