Ruby on Rails, wie man deaktivieren/ausschalten ETag
Grüße,
Wie schalte ich das ETag(en) in Ruby on Rails v2.3.5
Wenn ich eine direkte Anfrage an den RoR/Mongrel wird ein ETag-header vorhanden ist.
TIA,
-daniel
Du musst angemeldet sein, um einen Kommentar abzugeben.
viel einfacher:
Setzen
response.etag = nil
in einem before_filter funktioniert nicht. Das etag wird generiert, kurz bevor die Antwort gesendet wird (es ist daher vom Körper so nach und nach alle rendering getan wurde).Die richtige Lösung zu deaktivieren etag-Nutzung und-Generierung (und damit sparen Sie die Zeit verbringen Sie in md5) es dieses monkey patch:
Arbeite ich in Rails 4 auf WEBrick, zu versuchen, eine Antwort zu cache, bis es ausläuft, zu einer bestimmten Zeit jeden Tag. Es sieht aus wie die automatisch generierten ETag stört den Ablauf-cache, die ist, warum ich suchte für diese Antwort. Ich habe nichts gefunden, hilfreich hier, aber ich wollte mein problem lösen, so werde ich zu teilen.
tl;dr Setzen Sie die
Last-Modified
headerAber zu was? In meiner situation habe ich versucht zu optimieren, die ein web service, welcher die Ergebnisse eines Prozesses, der läuft an der gleichen Zeit jeden Tag. Meine Antwort-Header endete so Aussehen:
Zunächst möchten Sie ausdrücklich schreiben das
Cache-Control
header zu überschreiben, was die Standardeinstellung ist. Ich meine zu 24 Stunden, zeitgleich mit dem maximum meiner Ablaufdatum-header. Ich die Ablauf-header mit einer Funktion die so aussieht:Den getLastModified Funktion exakt 24 Stunden weniger als die getCacheTime Funktion. Es scheint, dass diese Einstellung unterdrückt die ETag (eine weitere Validierung caching-header) zumindest in meinem aktuellen Entwicklungsumgebung.
Warum nicht fügen Sie einen before_filter in Ihrer Anwendung controller die sets etag nil?