状況:静的コンテンツの default_expiration を「14d」に設定して Google App Engine サイトを実行している
問題: Chrome と Safari で URL にアクセスすると (リロードせず、アドレス バーにカーソルを置いて Enter キーを押すだけ)、大量のリクエストが If-None-Match ヘッダーで起動されます。予想どおり、応答は常に 304 Not Modified です。これらのリクエストが、Charles や Fiddler などのデバッグ プロキシで起動されるのを見ることができます。
希望:静的コンテンツに対してこれらのリクエストと 304 応答を完全に回避するには、ブラウザーのキャッシュされたコンテンツが利用可能になったときにそれを信頼するだけです。
標準の「非常に長い間静的コンテンツをキャッシュし、キャッシュを無効にする必要がある場合は、クエリ文字列に ?version={version} の変更を追加する」システムを使用しているため、実際には避けたいと考えています。 304の。
信念:これは、アプリ エンジンがすべての静的コンテンツ レスポンスで送信する etag ヘッダーが原因だと思います。アプリ エンジン SDK はこのヘッダーを送信しません。SDK をいじっても、この 304 動作は見られません。
何かアドバイス?App Engine の静的コンテンツの etag を無効にすることはできますか?
静的コンテンツの例で更新: http://www.khanacademy.org/stylesheets/shared-package/compressed.css