0

Webアプリケーションを本番TomcatWebサーバーにすでにアップロードしました。
すでにテストしようとしていますが、FF / IE7 / IE8で正常に動作しますが、IE6での表示に問題があります。

ステータスバーで、IE6が時々画像をダウンロードしているように見えることに気づきました。何もクリックしなかったのに、画像をダウンロードします。

画像を使用するメニューを使用していますが、IE6ではうまく表示されません。問題は、ターゲットユーザーの60%がこのブラウザーで実行されていることです。

これはブラウザのキャッシュの問題だと思い始めています。すべてのJSPで、すべてのヘッドセクションのメタタグの下に配置します。これを行ったのは、アプリがAjaxに大きく依存しており、Webリソースの最新のコピーが必要だからです。

<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="Expires" content="Sat, 01 Dec 2001 00:00:00 GMT">
</head>

これが原因である可能性があり、これに対する回避策はありますか?IE6にこれらの画像をキャッシュさせるにはどうすればよいですか?ありがとう。

これがあなたが探しているものであるかどうかは正確にはわかりませんが、何かが足りない場合は親切にアドバイスしてください。

これは、ダウンロードされている画像の例です。このアプリはローカルのイントラネットWebサイトでのみ実行されることを忘れました。

@ペッカ、これはあなたが探しているものですか?

Response Headers
Server  Apache-Coyote/1.1
Etag    W/"1957-1275442082000"
Date    Mon, 18 Oct 2010 11:37:00 GMT

Request Headers
Host    atpapps03:9090
User-Agent  Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729)
Accept  image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive  115
Connection  keep-alive
Referer http://atpapps03:9090/rts/css/menu.css
Cookie  JSESSIONID=0DD210EE0B2788A7774B10D477734DA9
If-Modified-Since   Wed, 02 Jun 2010 01:28:02 GMT
If-None-Match   W/"1957-1275442082000"
Cache-Control   max-age=0
4

3 に答える 3

2

すべての JSP で、すべての head セクションの meta タグの下に配置します。私のアプリは Ajax に大きく依存しており、Web リソースの最新のコピーが必要なので、これを行いました。

2 つの問題があります。

  1. メタ タグは Web ブラウザによって無視されます。この情報を応答ヘッダーに入れます。

  2. 無視されなかった場合でも、メタ ルールは JSP の HTML 出力にのみ適用され、HTML 出力内のすべてのリンクされたリソース (img、js、css など) には適用されませんでした。それぞれ独自の応答ヘッダーに独自のルールがあります。

あなたの最善の策は、静的コンテンツの遠い将来の日付にヘッダーFilterを追加するを使用することです。Expires

private static final long DEFAULT_EXPIRE_TIME = 604800000L; // ..ms = 1 week.

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {
    final long twoWeeksAhead = System.currentTimeMillis() + DEFAULT_EXPIRE_TIME;
    ((HttpServletResponse) response).setDateHeader("Expires", twoWeeksAhead);
    chain.doFilter(request, response);
}

このフィルターを対象の URL をカバーするようにマップweb.xmlurl-patternます/images/*

于 2010-10-18T14:19:02.353 に答える
1

静的ファイルタイプのキャッシュ設定を制御する方法については、たとえばこの質問を参照してください。

于 2010-10-18T11:42:33.010 に答える
-1

Pekkaは正しいです、おそらくキャッシングコントロールです。これを回避する方法は、別のキャッシュヘッダーのセットを使用して別のサブドメインから画像を読み込むことです。CDNプロバイダーを使用する場合、CDNプロバイダーがキャッシュコントロールを設定します。

IE SUCKS!idはIE7-8-9でテストします。イントラネットアプリの場合、IE6を使用する人はほとんどいません。簡単な解決策は、Chromeフレームであり、それを検出し、インストールされていない場合は、ダウンロードページにリダイレクトします。

于 2010-10-18T11:46:52.923 に答える