使用App Engine Python 37在没有任何Python脚本的情况下提供静态文件

时间:2019-01-27 12:09:59

标签: python google-app-engine google-app-engine-python python-3.7

使用App Engine Python27(标准环境),可以创建仅提供app.yaml中的静态资源的网络应用。无需编写任何Python脚本。

使用Python37(标准环境),我发现仍然可以在static_dir的{​​{1}}部分中加入handlers,但我想知道这是否可以相同的方式工作。原因我没有定义任何入口点,也没有设置Web服务器。我目前只有app.yaml

这是目前阻止我的第一个:如果这样做,我如何在本地运行此应用程序? (没有Python脚本,因此app.yamlpython main.py都不适用于Python37)。

感谢您的回答

1 个答案:

答案 0 :(得分:1)

是的,static_dirstatic_file配置的工作方式相同,除了引用之外,{。3}和2.7在app.yaml参考文档中的部分相同特定于2.7的application_readable选项。

由于在GAE上提供静态内容是完全相同的(静态内容是与应用程序代码分开上传和提供的-与您从CDN上提供的内容相当),因此,使用2.7运行时或3.7运行时-您实际上没有执行任何python代码,对吗?

因此,一种选择是仅使用2.7(添加最小的应用程序框架以保持运行时快乐,例如,只需返回404或重定向到静态页面之一-您可以从3.7获取它)。然后,您可以继续使用2.7开发服务器进行本地执行。

另一种选择是仅将2.7(与选项1相同)用于本地开发,但切换回3.7进行部署(即更新app.yaml文件,删除框架应用代码或将其更新为3.7) 。有点单调乏味,但可以做到。

第三个选择是尝试使用更新的开发服务器,该服务器对3.7的支持有限,请参见Quickstart。有限的支持中可能包含提供静态内容的服务。您需要满足其特定要求。您还需要一个与3.7兼容的骨架应用,您可以从Python 3.7 Local Development Server Options for new app engine apps中获得一个。

最后,如果您有一个工具,也可以在开发过程中在本地使用其他工具(与3.7 Quickstart相同的建议)。它可能只是您的静态纯内容浏览器:)同样,目标是仅开发静态内容,GAE将以相同的方式提供内容。在这种情况下,您不需要任何骨架应用。

旁注:我在running an actual app locally中看到了这一点,不确定它是否也适用于python 3.7,请注意:

  

为了使用静态处理程序,您的至少一个处理程序必须   包含脚本:自动行以成功部署。