Ich stoße auf einige Caching Probleme, da Wildfly 8.2 standardmäßig nur den Last-Modified Response Header enthält, wenn statische Dateien geliefert werden aus einer bereitgestellten Kriegsdatei. Ich möchte, dass Wildfly ETag, Response-Header, einfügt, der meine Caching-Probleme lösen würde. Weiß jemand, wenn möglich, in der Datei standalone.xml zu konfigurieren?Wie man Wildfly 8.2 konfiguriert, um ETAG Response Header für statische Dateien (html, js, css, etc) einzubinden
1
A
Antwort
0
Ich habe Umgehung mit speziellen "Ressource" Servlet implementiert, die Kriegsressourcen mit ETag-Header dienen.
Das Servlet erstreckt sich von der FileServlet-Klasse, die in der Omnifaces-Bibliothek implementiert ist (http://showcase.omnifaces.org/servlets/FileServlet). Die FileServlet-Implementierung behandelt alle HTTP-Caching-Header korrekt. Sie benötigen lediglich die Ressourcenlademethode getFile(), um WAR-Ressourcendateien bereitzustellen. Hier ist das Beispiel für die korrekte gecached dienen alle Ressourcen aus „app“ Verzeichnis:
@WebServlet(value = {"/app/*"})
public class ApplicationResourceServlet extends FileServlet {
@Override
protected File getFile(HttpServletRequest request) throws IllegalArgumentException {
final String pathInfo = request.getPathInfo();
if (pathInfo == null || pathInfo.isEmpty() || "/".equals(pathInfo)) {
return null;
}
final String realPath = getServletContext().getRealPath("/app" + pathInfo);
if (realPath != null && Paths.get(realPath).toFile().exists()) {
return new File(realPath);
}
return null;
}
}
in Werfen Sie einen Blick: http://stackoverflow.com/questions/34133039/browser-cache-expiration-for-js- und-css-files-with-wildfly –
Hab schon mal geschaut, aber keine Antwort gesehen. Es scheint jedoch, dass Undertow 1.2.x Etags für statische Dateien nicht unterstützt. Siehe https://github.com/undertow-io/undertow/blob/07d0ccb1eefb04a3b712af4e2c8f3a303081b0b1/core/src/main/java/io/undertow/server/handlers/resource/PathResource.java und https://github.com/undertow -io/underth/blob/07d0ccb1eefb04a3b712af4e2c8f3a303081b0b1/core/src/main/java/io/undertow/server/handlers/resource/ResourceHandler.java –
@FedericoSierra Eine Idee, wie zu und zu einem Etag von variable Größe, z etwas Hash auf den Inhalt einer Datei. –