2016-10-10 19 views
3

ファイルシステムとデータベースの両方にpngファイルがあります。だから私は一度だけ画像を表示Wicket 7で画像をキャッシュ可能にするにはどうしたらいいですか?

ByteArrayResourceを使用しようとしました。ブラウザのリフレッシュでは、イメージプレースホルダのみが表示されました。画像のURLは、追加のパラメータを持っていた:

& antiCache = 123456789

のでByteArrayResourceは、それが一度だけ使用することができますように私には見えますし、ページのみrefresehdを取得した場合にも再ロードする必要があります。次の私は(もリフレッシュ後に)ブラウザに画像を表示するだけでなく、「antiCache」パラメータをレンダリング

PackageResource

を試みました。これは、明示的に呼び出した後でも発生しました

setCachingEnable(true); 

また、「PackageResource」はデータベースのpngデータを使用できません。

答えて

3

antiCacheパラメータは、Ajax応答でのみ追加されます。イメージをAjaxレスポンス(https://github.com/apache/wicket/blob/70606d73e9165d37c1d8b7c7820279fb4be18770/wicket-core/src/main/java/org/apache/wicket/markup/html/image/Image.java#L543)に追加すると、Wicketは再描画する必要があるとみなし、URLを変更します。 このメソッドをオーバーライドして、この動作を抑制できます。

+0

この情報は、Wicketユーザーガイドに記載する価値があります。私はWicket Imageを拡張し、PackageResourceReferenceを提供しました。 PackageResourceを使用すると、ブラウザにイメージが表示されませんでしたが、src属性は正常に見えます。 –

関連する問題