GWTを使用してWebアプリを開発していapp.nocache.js
ますが、Webサーバーがファイルの新しいコピーを送信したにもかかわらず、ブラウザーでのファイルのキャッシュに問題が発生しています。
私はEclipseを使用してアプリをコンパイルしています。これは開発モードで動作します。本番モードをテストするために、ホストマシン(Windows 7)で実行されているUbuntuゲストOSを備えた仮想マシン(Oracle VirtualBox)があります。VMでlighttpdWebサーバーを実行しています。VMは私のプロジェクトのwarディレクトリを共有しており、Webサーバーはこのディレクトリを提供しています。
ブラウザとしてChromeを使用していますが、Firefoxでも同じことが起こります。
シナリオは次のとおりです。
- アプリのウェブページが空白です。Chromeの「要素の検査」ツールによると
6E89D5C912DD8F3F806083C8AA626B83.cache.html
、これは、存在しないフェッチを試行しているためです(404 not found
)。 - warディレクトリを確認しましたが、そのファイルは存在しません。
- サーバー上のファイルがブラウザのキャッシュよりも新しいため、
app.nocache.js
ブラウザ上のはWebサーバーからリロードされました(200 OK)。サーバーから返された新しいファイルのファイルサイズとタイムスタンプが正しいことを確認しました。(これは、ChromeがサーバーのHTTP応答について報告する情報です) ただし、
app.nocache.js
ブラウザでを開くと、javascriptは6E89D5C912DD8F3F806083C8AA626B83.cache.html
!!!を参照しています。つまり、Webサーバーが新しいを送信したとしてもapp.nocache.js
、ブラウザはそれを無視し、キャッシュされたコピーを使用し続けたようです。Google->EclipseでのGWTコンパイルに移動します。すべてを再コンパイルします。
- warディレクトリで、
app.nocache.js
が上書きされ、新しいタイムスタンプがあることを確認します。 - Chromeからページを再読み込みし、サーバーがに200OK応答を送信したことをもう一度確認します
app.nocache.js
。 - ブラウザはもう一度ロード
6E89D5C912DD8F3F806083C8AA626B83.cache.html
を試みて失敗します。ブラウザはまだの古いキャッシュコピーを使用していますapp.nocache.js
。 - 戦争ディレクトリで、何も参照していないことを絶対に確認しました
6E89D5C912DD8F3F806083C8AA626B83.cache.html
(findとgrepを介して)
何が問題になっていますか?サーバーが新しいコピーを送信している場合でも、ブラウザがこのnocache.js
ファイルをキャッシュするのはなぜですか?
これは、ブラウザで[再読み込み]をクリックしたときのHTTP要求/応答ヘッダーのコピーです。このトレースでは、最後のGET以降、サーバーコンテンツは再コンパイルされていません(ただし、キャッシュされたバージョンのnocache.jsはまだ間違っていることに注意してください)。
Request URL:http://192.168.2.4/xbts_ui/xbts_ui.nocache.js
Request Method:GET
Status Code:304 Not Modified
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Host:192.168.2.4
If-Modified-Since:Thu, 25 Oct 2012 17:55:26 GMT
If-None-Match:"2881105249"
Referer:http://192.168.2.4/XBTS_ui.html
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4
Response Headersview source
Accept-Ranges:bytes
Content-Type:text/javascript
Date:Thu, 25 Oct 2012 20:27:55 GMT
ETag:"2881105249"
Last-Modified:Thu, 25 Oct 2012 17:55:26 GMT
Server:lighttpd/1.4.31