我正在尝试将项目部署到Google App Engine。我呈现的主HTML页面存储在项目的/documents/form.html目录中。如果我在本地主机上运行,它会发现文件没问题。当我部署到GAE时,它会给出以下错误:
File "/base/data/home/apps/s~andesonchase/1.372703354720880550/main.py", line 4, in <module>
fileHandle = open("documents/form.html", "r")
IOError: [Errno 2] No such file or directory: 'documents/form.html'
我想我需要将它包含在我的app.yaml中,但我不确定正确的语法。
答案 0 :(得分:3)
我可以列出三个选项
A)如前一张海报所建议的那样,将app.yaml添加为static_files条目,或者将文档设置为static_dir,允许使用原始http请求访问文件,但完全绕过main中的处理程序。吡啶
B)[可能是最kosha]是使用jinja2模板库as explained here访问该文件,该文件库不需要您明确地将文件添加到app.yaml
C)或者你现在可以坚持使用你在main.py中做的任何事情,但修改你的公开声明如下
import os.path
f = open(os.path.dirname(__file__) + '/documents/form.html')
在this stackoverlflow answer中解释,因为open与appengine的工作方式略有不同
答案 1 :(得分:0)
如果您想将其作为静态文件提供,请按以下方式添加:
将其添加到您的app.yaml并将/form
替换为您想要的网址
- url: /form
static_files: documents/form.html
upload: documents/form.html
如果你需要运行一个脚本,那就不一样了。