2010-11-04 32 views
1

我正在为Google App Engine开发Python应用程序。Google App Engine在静止期后的页首开始提供虚假内容

当我从appspot运行已部署的应用程序时,它可以正常工作,除非我第一次在5分钟内访问它。问题是,如果我没有访问应用程序的同时,页面呈现与消息

状态:200 OK内容类型:text/html的; charset = utf-8 Cache-Control:no-cache过期时间:星期五,01 Jan 1990 00:00:00 GMT内容长度:15493

预设在顶部。通常在显示页面的其余部分之前,文本会显示一两秒钟。

如果我检查服务器日志,我看见信息消息

这个请求引起了新的工艺,为您的应用程序被启动,并由此导致加载首次应用程序代码。

问题很容易通过刷新页面来纠正。在这种情况下,页面正确传递,并为后续刷新工作。但是如果我等5分钟,问题就会回来。

任何解释或建议如何解决此问题?我有一个模糊的概念,当GAE在不活动时“唤醒”时,会出现不正确的初始化。或者,也许前一轮活动的标题在某个缓冲区中徘徊。但是当请求处理程序被调用时,self.response.out似乎是空的。

回答

6

顶级模块代码中的某处使用Python print语句。将输出打印到标准输出,这是作为响应主体返回的内容;如果它输出一对换行符,那么之前的内容被浏览器视为响应头。你看到的'垃圾'是由你的web应用程序生成的真正的响应标题。

它只发生在启动请求上,因为这是执行代码的唯一时间。

+0

很明显,一旦它被指出。花了大约10秒钟找到有问题的打印语句,问题看起来像是已修复。谢谢! – brainjam 2010-11-04 16:09:46