良い一日、
サーバーへの特定のパスをフィルタリングするためにCacheFilterを使用しています(画像ストリームを応答ストリームに出力します)。そして、次のように web.xml で構成しました。
<filter>
<filter-name>imagesCache</filter-name>
<filter-class>com.samaxes.cachefilter.presentation.CacheFilter</filter-class>
<init-param>
<param-name>privacy</param-name>
<param-value>public</param-value>
</init-param>
<init-param>
<param-name>expirationTime</param-name>
<param-value>2592000</param-value>
</init-param>
</filter>
...
<filter-mapping>
<filter-name>imagesCache</filter-name>
<url-pattern>/my/path/*</url-pattern>
</filter-mapping>
Firefox を使用して、アドレス バーから URL にアクセスすると、最初はサーバーにヒットしますが、後続の呼び出しではキャッシュが使用されます。ただし、URL が自分のページ内にある場合 (つまり<img src="..."/>
)、常にサーバーにアクセスしているようです。
[編集] さらにいくつかのテストを行った後、アドレス バーからの画像へのアクセスが常に機能しません。しかし、キャッシングは よりも頻繁に機能するようです。本当かどうかは、定かではありません。
追加情報: 私のパスは /my/path?then=some&query=strings のようなものです。拡張子 (gif、png、jpeg など) はありませんが、MIME タイプが適切に設定されていることに注意してください (image/gif、image/png、image/jpeg )。拡張子の欠如やクエリ文字列の存在が影響を与えるかどうかはわかりません。(また、別のメモ。私の URL にはクエリ文字列がありますが、同じ uri + クエリ文字列をテストで何度も使用しています)。
理由はありますか?
ありがとう