3

デスクトップマシンの開発サーバーでAppEngineアプリを正常に実行していますが、ソースコードの更新に注意を払うためにGoogleのサーバーのバージョンを取得できません。

これが最もわかりやすいイラストです。私のapp.yamlファイルは次のように始まりました:

application: xxxxxxxx
version: 1
runtime: python
api_version: 1

builtins:
- datastore_admin: on

handlers:
- url: /statix
  static_dir: statix

- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: .*
  script: main.py

最後の行は、すべての非静的URLをmain.pyファイルにルーティングします。このバージョンのmain.pyを「古い」バージョンと呼びましょう。

main.pyに定期的な変更を加えた後(それによって「新しい」バージョンを作成した後)、問題が発生しました。「新しい」バージョンはローカルホストマシンでは正常に機能しますが、GAEにデプロイした後、その変更はビッグインターネット経由で提供されません。代わりに、GAEは「古い」main.pyによって計算されたページを提供します。GAE Launcherを終了して再起動すると役立つ場合がありますが、それはしばらくの間(数時間)機能しませんでした。マシンを再起動しても。

そこで、実験のために、app.yamlの最後の行を次のように変更しました。

script: main2.py

GAEに再デプロイしましたが、Webサイトにアクセスすると、プロジェクトにmain2.pyファイルがないため、予想どおり500エラーが発生します。

そこで、「新しい」main.pyディスクファイルの名前をmain2.pyに変更し、GAEに再デプロイすると、500エラーがなくなります(これも予想どおりです)。

しかし、ここでそれは奇妙になります。このアップロードされたばかりのmain2.pyファイルは「新しい」main.pyであり、単に名前が変更されています。ただし、GAEによって提供されるページは、「古い」main.pyによって計算されたページです。

ブラウザのキャッシュをクリアしました。私は、このプロジェクトによって提供されるURLを見たことがないOperaのほこりっぽいコピーを起動しました。また、「古い」main.pyが作成する古いページコンテンツも表示しています。

私はAppEngineを数年間使用しています。私は一週間前までこのような問題を抱えたことはありません。最近、ランチャーを1.7.3(Mac OS X 10.6.8)にアップデートしました。最初は、ランチャーが何らかの理由で破損していると思っていましたが、app.yamlの実験では、GAE自体に何かがあることが示唆されています。GAEランチャーにはたくさんのプロジェクトがありますが、クリーンインストールはしたくありません。

あなたの考えを聞いて恥ずかしくなると思いますが、アイデアが足りなくなりました。

補遺:ユーザーdragonxは、キャッシュが問題の根本にある可能性があることを示唆しました。これについて考えると、Googleドメインサービスを使用してアプリケーションのカスタムドメインを構成した後に実際に開始されました。しかし、ここでは、によるとcurl -D、私のアプリケーションのホームページのヘッダーは次のとおりです。

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Cache-Control: no-cache
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Vary: Accept-Encoding
Date: Tue, 11 Dec 2012 02:29:43 GMT
Server: Google Frontend
Transfer-Encoding: chunked

キャッシュがオフになっているようです。それでも、Googleドメインサービスに戻ってキャッシュをオフにする方法が見つかりません。:-(

補遺#2:ファイルを別のアプリ(つまり、許可されている10個のうちの別のアプリ)としてアップロードしました。彼らはアップデートを提供しました。ただし、新しくアップロードしたファイルに変更を加えたところ、それらの変更は表示されませんでした。したがって、問題が何であれ、ユーザーアカウントのすべてのアプリに影響するようです。

4

2 に答える 2

1

「バージョン」と「管理ログ」を見てください。間違ったバージョンを更新している可能性があります。つまり、デフォルトではありません 。https://appengine.google.com また、Cookieなしで試してください(Cookieは更新に対して奇妙なことをすることがあります)

appcfg.py update . --no_cookies
于 2012-12-11T06:03:17.257 に答える
1

HTTPキャッシュヘッダーを設定しましたか?その場合、GAEのエッジキャッシュなどの中間キャッシュから結果を取得している可能性があります。

于 2012-12-10T16:26:08.410 に答える