2013-07-11 4 views
5

Ich kann Tomcat nicht dazu bringen, Bilder mit der korrekten Ablaufdefinition zu senden. Der Browser sendet weiterhin Anfragen nach Bildern, die bereits heruntergeladen wurden, und Tomcat antwortet mit 304. Was ich möchte, ist, dass Tomcat auf die anfängliche Anfrage mit dem richtigen Expires-Header und ohne Zuletzt geändertem Header antwortet, so dass der Browser lokalen Cache bis zur Datei verwendet läuft ab, ohne auf den Server zu gehen, um jede Seite zu überprüfen, ob sich das Bild geändert hat.Tomcat ExpiresFilter funktioniert nicht richtig

ich die folgende Definition in meiner web.xml-Datei:

<filter> 
    <filter-name>ExpiresFilter</filter-name> 
    <filter-class>org.apache.catalina.filters.ExpiresFilter</filter-class> 
    <init-param> 
     <param-name>ExpiresByType image</param-name> 
     <param-value>access plus 1 weeks</param-value> 
    </init-param> 
    <init-param> 
     <param-name>ExpiresByType text/css</param-name> 
     <param-value>modification plus 0 minutes</param-value> 
    </init-param> 
    <init-param> 
     <param-name>ExpiresByType application/javascript</param-name> 
     <param-value>modification plus 0 minutes</param-value> 
    </init-param> 
</filter> 

<filter-mapping> 
    <filter-name>ExpiresFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
    <dispatcher>REQUEST</dispatcher> 
</filter-mapping> 

Jede Idee?

Antwort

5

Kann aktiviert Sie ExpiresFilter Protokolle wie in Container Provided Filters > ExpiresFilter > Troubleshooting beschrieben:

-$CATALINA_BASE/conf/logging.properties Fügen Sie die folgende Erklärung ab:

org.apache.catalina.filters.ExpiresFilter.level = FINE 

Sie Meldung log wie folgt zusammen:

Ein Ablauf Header hinzugefügt:

Mar 26, 2010 2:09:47 PM org.apache.catalina.filters.ExpiresFilter onBeforeWriteResponseBody 
    FINE: Request "/tomcat.gif" with response status "200" 
    content-type "image/gif", set expiration date 3/26/10 2:19 PM 

Kein Verfallsheader hinzugefügt:

Mar 26, 2010 2:10:27 PM org.apache.catalina.filters.ExpiresFilter onBeforeWriteResponseBody 
    FINE: Request "/docs/config/manager.html" with response status "200" 
    content-type "text/html", no expiration configured