Google app engine App Engine忽略我的源代码更新和我的App.yaml文件

Google app engine App Engine忽略我的源代码更新和我的App.yaml文件,google-app-engine,app.yaml,Google App Engine,App.yaml,我的AppEngine应用程序与桌面计算机上的开发服务器运行良好,但我无法让Google服务器上的版本关注我的源代码更新 这是最能说明问题的例子。我的app.yaml文件以以下方式启动: application: xxxxxxxx version: 1 runtime: python api_version: 1 builtins: - datastore_admin: on handlers: - url: /statix static_dir: statix - url: /fav

我的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为“old”main.py计算的页面提供服务。有时候,退出GAE启动器并重新启动会有所帮助,但这已经有一段时间(几个小时)不起作用了。即使机器重新启动

因此,为了试验,我将app.yaml的最后一行更改为:

script: main2.py
我重新部署到GAE,当我访问我的网站时,我得到一个500错误——正如预期的那样——因为项目中没有main2.py文件

因此,我将“new”main.py磁盘文件重命名为main2.py,重新部署到GAE,500错误消失了——这也是预期的结果

但这就是奇怪的地方。刚刚上传的main2.py文件是“new”main.py,只是重命名了。但是,GAE提供的页面是由“old”main.py计算的页面

我已清除浏览器缓存。我甚至还点燃了一个满是灰尘的Opera副本,它从未见过这个项目提供的URL,它也显示了“old”main.py创建的过时页面内容

我已经使用appengine好几年了。一周前我从未遇到过这样的麻烦。我最近将启动器更新为1.7.3(MacOSX10.6.8)。起初,我认为我的启动器不知何故被损坏了,但app.yaml实验表明这是GAE本身的问题。我的GAE启动器中有很多项目,我真的不想进行干净的安装

我敢打赌,当我听到你的想法时,我会感到尴尬,但我已经没有主意了

附录:用户dragonx建议缓存可能是问题的根源,现在我想起来,这确实是在我使用Google Domains服务为应用程序配置自定义域之后开始的。但是,根据
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个应用程序中的另一个)。他们提供了更新服务。但是,当我对新上载的文件进行更改时,这些更改没有出现。因此,无论出现什么问题,它似乎都会影响我的用户帐户下的所有应用。

您设置了HTTP缓存头吗?如果设置了,您可能会从某些中间缓存(如GAE的边缘缓存)中获得结果。

好的,在“版本”和“管理日志”中,您可能更新了错误的版本,即不是默认版本 也可以尝试不使用cookie(cookie有时会对更新产生奇怪的影响)


将app.yaml中的版本更改为2.Deploy。将控制面板中的默认版本更改为2。删除1。问题可能会消失。这是一个很好的主意--但是,唉,它没有解决问题。尝试删除,然后从启动器读取程序。好主意。这也不起作用。我从启动器中删除了应用程序,增加了更新app.yaml中的版本,将应用程序添加回启动器,部署到GAE,将当前版本设置为默认版本,删除旧版本,…但仍然会提供无情的旧页面。我认为你是对的。回想起来,我的问题是在设置自定义域以指向我的应用程序后开始的。我已将问题编辑为提供更多信息。底线:我不知道如何关闭缓存。看起来你已经设置了缓存控制和expires标头,expires标头很奇怪。缓存标头将针对每个URL,所以请检查不更新的页面。如果你碰巧为某些页面设置了较长的缓存周期,你可能会被搞砸直到这些缓存过期。您必须更改URL才能立即访问它。因此,我的建议是:尝试更改URL,尝试比较来自域和appspot URL的结果,并确保您没有弄乱缓存头。此外,您是否将域设置为指向特定版本的应用?更改涉及我的主页,因此确实没有更改URL的选项。在我设置域时,应用程序只有一个版本。我不记得是否指定了特定版本。无论如何,在我设置域时存在的应用程序版本已被删除。我想我现在唯一的选项是上载我的sou将rce代码导入新的GAE项目(基于新的Gmail帐户),将域重新指向新项目(可能吗?),并希望一切顺利。事实上,我认为最有可能的是,你的新main.py没有做你认为它是做的。你真的调试过它,以确保它服务于你认为它应该服务的东西吗?比如改变main.py,只返回“Hello World”。
appcfg.py update . --no_cookies