1

いくつかのJSF2.0プロジェクトに取り組んでいます。新規/既存のユーザーの画像を追加するためのフォームを用意します。ページ(* .xhtml)を更新しないと、新しく追加された画像を表示できません。私は定期的に入れようとしました:

<meta http-equiv="pragma" content="no-cache"> 
<meta http-equiv="cache-control" content="no-cache"> 
<meta http-equiv="expires" content="0">  

しかし、それは役に立ちません。

ページキャッシュを無効にするにはどうすればよいですか?

4

1 に答える 1

2

ページが HTTP 経由で提供されている場合、HTML<meta http-equiv>タグは無視されます。タグは、<meta http-equiv>ページがエンドユーザーによってローカル ディスク ファイル システムに保存され、file://URL によって開かれた場合にのみ解釈されます。

代わりに、実際のHTTP 応答でこれらのヘッダーを設定する必要があります。最も簡単な方法は、基本的に行うサーブレットフィルターを使用することです

response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
response.setHeader("Pragma", "no-cache"); // HTTP 1.0.
response.setDateHeader("Expires", 0); // Proxies.
chain.doFilter(request, response);

Cache-Control(元のヘッダーが不完全であることに注意してください。上記の例は適切な使用法です)

特定のページの URL パターンにマップすることもできますが、JSF によって生成されたすべての動的ページにマップすることも検討できます。

于 2012-07-09T15:01:04.627 に答える