Meine Anwendung soll einige Bilder aus dem internen Dienst ständig herunterladen und hosten. Ich habe das implementiert, indem ich einen Akteur implementiere, der die Bilder abholen soll. Sie stellt die unter /public/analytics
ich diese Standardroute gesetzt haben:Play 2 und Caching-Assets
GET /public/*file controllers.Assets.at(path="/public", file)
Aber aus irgendeinem Grund, wenn ich versuche über http://server/public/assets/image.png ein Bild zugreifen zu können, sehe ich nicht das Update. Ich denke, das Problem ist, dass es zwischengespeichert wird. Wenn ich in mein Hosting gehe, sehe ich das aktualisierte Bild in /public/analytics
, so dass es im Cache sein sollte.
Ich habe versucht, dies zu Global
hinzuzufügen:
override def doFilter(action: EssentialAction): EssentialAction = EssentialAction { request =>
import play.api.http.HeaderNames
action.apply(request).map(_.withHeaders(
HeaderNames.CACHE_CONTROL -> "no-cache",
HeaderNames.PRAGMA -> "no-cache"
))
}
Aber das Ergebnis ist immer noch das gleiche. Außerdem sehe ich no-cache
Header, wenn ich die Bild-URL abrufe. Ich habe einen Vorschlag gesehen, jedes Mal eine neue URL zu generieren, aber das kann ich nicht tun.
Irgendwelche Ideen, was möglicherweise falsch sein könnte?
Leider funktioniert das nicht - ich bekomme immer noch das alte Bild, auch wenn ich 30 Sekunden warte. Ich habe versucht, den Cache auszuschalten, sehe den Code, den ich in der Antwort geschrieben habe - und ich bekomme immer noch ein altes Image. Erst als ich den Image-Retrieval über die normale "Action" implementierte, konnte ich reagieren, aber ich bin nicht sicher, ob dieser Ansatz gut ist. – Archeg
Das seltsame Ding, dass ich selbst nach 3 Stunden immer noch das alte Image bekomme. Gibt es noch etwas anderes als Cache, das das verursachen kann? – Archeg