5

Tomcat に正しい有効期限の定義で画像を送信させることができません。ブラウザーは、既にダウンロードされている画像の取得要求を送信し続け、Tomcat は 304 で応答します。私が望むのは、Tomcat が適切な有効期限ヘッダーを使用して最初の要求に応答し、Last-modified ヘッダーなしで応答することです。そのため、ブラウザーはファイルが更新されるまでローカル キャッシュを使用します。画像が変更されたかどうかを確認するために、各ページの読み込み時にサーバーにアクセスせずに期限切れになります。

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> 

何か案が?

4

1 に答える 1

6

Container Provided Filters > ExpiresFilter > Troubleshootingで説明されているように、ExpiresFilter ログを有効にできますか。

$CATALINA_BASE/conf/logging.properties次の宣言に追加します。

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

次のようなログ メッセージが表示されます。

有効期限ヘッダーが追加されます。

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

有効期限ヘッダーは追加されません。

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
于 2013-07-26T20:40:10.980 に答える