2013-07-11 20 views
5

Nie mogę poprosić Tomcat o wysłanie zdjęć z prawidłową definicją wygasania. Przeglądarka wysyła dalej żądania pobierania obrazów już pobranych, a Tomcat odpowiada 304. Chciałbym, żeby Tomcat odpowiedział na początkowe żądanie odpowiednim nagłówkiem wygasania i bez nagłówka ostatniej modyfikacji, aby przeglądarka używała lokalnej pamięci podręcznej, dopóki plik nie zostanie wygasa bez przechodzenia do serwera, gdzie każda strona ładuje się, aby zobaczyć, czy obraz się zmienił.Tomcat ExpiresFilter nie działa poprawnie

mam następującą definicję w moim pliku web.xml:

<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> 

Każdy pomysł?

Odpowiedz

5

Czy włączone logi ExpiresFilter jak opisano w Container Provided Filters > ExpiresFilter > Troubleshooting:

Dodaj do $CATALINA_BASE/conf/logging.properties następującą deklarację:

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

widać komunikat zalogować takich jak:

jest nagłówek ważności jest dodano:

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 

Nie dodano nagłówka wygasania:

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