18

アプリの特定の URL にアクセスすると間違った静的コンテンツがキャッシュされるという AppEngine の既知の問題が発生していますが、?foo パラメーターを追加してキャッシュと VERSION.myapp. appspot.com も機能します。

変更されていない URL に正しいコンテンツを表示する方法はありますか?

アプリを削除して復元するか、思い切ったものにしていただければ幸いです。アプリは公開されていませんが、数時間以内に公開する必要があります。AppEngine アプリと通信するモバイル アプリが適切なデータを取得できるように、これらの URL を機能させるためのあらゆる手段。

編集

ヘッダーをcURLすると、次のようになります。

HTTP/1.1 200 OK
ETag: "ZN9VxQ"
Date: Tue, 14 Aug 2012 02:00:58 GMT
Expires: Wed, 15 Aug 2012 02:00:58 GMT
Content-Type: text/html
Server: Google Frontend
Cache-Control: public, max-age=86400
Age: 34623
Transfer-Encoding: chunked

私はさらに 50,000 秒間ホースをかけられますか? とにかくそれを短くするには?

コメントの編集:

app.yaml には、次のハンドラーがあります。

- url: /static
  static_dir: static
  expiration: 1s

有効期限を削除しようとしました:

- url: /static
  static_dir: static

そして、ドキュメントに基づいて、これを app.yaml の先頭に追加しました。

default_expiration: "1m"

また、ファイルを削除しても、デプロイ時にファイルが消えることはありません。

4

2 に答える 2

10

それは、どのキャッシュ制御が使用されているかによって異なります。firebug och chrome インスペクターをチェックインして、設定されている有効期限を確認します。

cache-control を public に設定した場合、ファイルは途中でさまざまなプロキシやサーバーにキャッシュされるため、コントロールに影響を与えることはできません。

cache-control private を使用すれば、ブラウザのキャッシュをリセットして問題ないはずですが、おっしゃる通り、Google の本番環境から間違ったファイルを取得することがあります。私は同じ問題を抱えていました。最速の解決策は、ロードされたファイルにクエリ パラメータを追加することです。

于 2012-08-14T11:00:28.760 に答える