2

Google App Engine は常に URL /test.jsに対して 200 を生成します。test.js は静的リソースではなく、動的に生成されたコンテンツの URL パターンです。コンテンツは N 時間後に期限切れになり、新しいコンテンツが生成されます。

Last-Modified、ETag、および Cache-Control を試しました。どれも機能していないようです。

リクエスト

リクエスト URL:http://localhost:8081/test.js
リクエスト方法:GET
ステータスコード: 200 OK
承認:*/*
Accept-Encoding:gzip、deflate、sdch
Accept-Language:en-US,en;q=0.8
キャッシュ制御:最大年齢=0
接続:キープアライブ
ホスト: ローカルホスト:8081
If-Modified-Since:Fri, 18 Oct 2013 14:10:39 GMT
If-None-Match:"1B2M2Y8AsgTpgAmY7PhCfg"
リファラー:http://localhost:8080/
ユーザーエージェント:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (Gecko のような KHTML) Chrome/30.0.1599.101 Safari/537.36

応答ヘッダー

cache-control:public、max-age=360000
コンテンツの長さ:2
コンテンツ タイプ:アプリケーション/スクリプト; 文字セット=utf-8
日付:2013 年 10 月 18 日(金) 14:10:40 GMT
etag:"1B2M2Y8AsgTpgAmY7PhCfg"
有効期限: 2013 年 10 月 22 日 (火) 18:10:40 GMT
最終更新日:2013 年 10 月 18 日金曜日 14:10:40 GMT
サーバー:開発/2.0
4

2 に答える 2

0

HTTP ステータスについては、 http ://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html を参照してください。

200 は正しい HTTP OK ステータスであり、リソースが静的であるかどうかについての解釈はありません。(Facebook などの動的な Web ページを試してみてください) すると、200 であることがわかります。200 の応答があることは完全に正常です。

304 の場合は「変更なし」です - w3 で述べたように、「304 応答にメッセージ本文を含めてはなりません」。これはあなたが望むものではありません。

あなたの場合、これらの http ヘッダーの正しい有効期限を設定する必要があります (プログラム コード内で実行します)。これにより、ブラウザーは常に有効期限後 (たとえば 1 時間後) にコンテンツの新しいコピーを要求します。

cache-control:public, max-age=3600
expires:Tue, 20 Oct 2013 18:10:40 GMT
于 2013-10-19T01:29:15.437 に答える