使用App Engine Python27(标准环境),可以创建仅提供app.yaml
中的静态资源的网络应用。无需编写任何Python脚本。
使用Python37(标准环境),我发现仍然可以在static_dir
的{{1}}部分中加入handlers
,但我想知道这是否可以相同的方式工作。原因我没有定义任何入口点,也没有设置Web服务器。我目前只有app.yaml
。
这是目前阻止我的第一个:如果这样做,我如何在本地运行此应用程序? (没有Python脚本,因此app.yaml
和python main.py
都不适用于Python37)。
感谢您的回答
答案 0 :(得分:1)
是的,static_dir
和static_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,请注意:
为了使用静态处理程序,您的至少一个处理程序必须 包含脚本:自动行以成功部署。