ここにはかなりの詳細があります:
- コンテナー: JETTY 7.62 および 7.69 (両方を試した)
- 画像: jpg と png を試してみました
- ブラウザー: IE9 と Fiddler ツール
これで、標準の img タグなどを含む Web ページができました。キャッシュがクリアされた後に IE からページにアクセスすると、画像に 200 が返されます。
リクエストヘッダー:
Key Value
Request GET /cc/auth/images/test.jpg HTTP/1.1
Accept image/png, image/svg+xml, image/*;q=0.8, */*;q=0.5
Accept-Language en-US
User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Accept-Encoding gzip, deflate
Host van-test-login9.login.dev.net:8443
Connection Keep-Alive
応答ヘッダー:
Key Value
Response HTTP/1.1 200 OK
Date Thu, 28 Feb 2013 19:59:48 GMT
Content-Length 25926
Content-Type image/jpeg;charset=UTF-8
Last-Modified Thu, 28 Feb 2013 19:58:38 GMT
しかし、応答本文は空です..サーバー側で見る
[28/Feb/2013:19:59:25 +0000] "GET /cc/auth/images/test.jpg HTTP/1.1" 200 25926
そのため、ブラウザで画像が壊れて表示されます。JETTY のバージョンを切り替えて実験を行っていますが、違いはないようです。FF または Chrome を使用している場合、この問題は発生しません。さらに、ポート 8080 にアクセスしても、問題を再現することはできません。ということで、SSL/JETTY/IE の組み合わせのようです。
ブラウザにリソースの場所を入力して、画像に直接アクセスしようとすることで、問題を再現することもできます。Fiddler を使用して再作成することもできます。JETTY ログ、アプリケーションなどにエラーはありません。
また、これは断続的であることも付け加えておきます。一度 F5 キーを押し続けると、最終的には読み込みとレンダリングが行われ、キャッシュをクリアするまで壊れた画像は表示されません。
ここで何が起こっているのかを理解するための提案やアイデアを持っている人はいますか?
どうもありがとう
もう少し情報がありますが、これは web.xml にあります。
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
と
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
これを行ったのは、すべての送信が UTF-8 であることを確認するためです。認識していなかったのは、画像を含むすべての文字セットも配置されるということです!
画像を簡単に除外する方法はありますか?