2016-12-20 12 views
0

リソース応答にHTTPヘッダーContent-Disposition:inlineが含まれているとキャッシュ指示が適用されないようです。 OmniFaces CacheControlFilterを使用すると、応答にCache-ControlまたはExpiresというディレクティブが含まれません。それは普通ですか?応答にContent-Dispositionヘッダーが含まれていると、OmniFaces CacheControlFilterは無効です。

+0

多くの場合、レスポンスヘッダーは、ファイルダウンロードをストリーミングするためのコードによってリセットされます。これはここのケースではないと確信していますか? – BalusC

+0

正しい。 response.reset()があります。コード – jpl

答えて

2

いいえ、これはデフォルトの動作ではありません。

この動作は、ファイルをストリーミングするコードが、応答がきれいできれいであることを確認するためにresponse.reset()を実行したことを示しています。初心者はダウンロードがうまくいかないと不平を言うので、これはコピーパイパーコードの断片でよく見られます。たとえば、次のようになります。How to provide a file download from a JSF backing bean?

OmniFacesを使用しているとすれば、ファイルをレスポンスにストリーミングする場合は、Faces#sendFile()またはFileServletが便利です。 Faces#sendFile()does notは、response.reset()を実行し、FileServletキャッシュは、デフォルトで30 daysであり、getExpireTime()メソッドをオーバーライドすることによって制御可能です。

+0

ありがとう、それは非常に便利です – jpl

関連する問題