我有一小段代码来显示文件
在app.yaml
中- url: /(.*\.(gif|png|jpg))
static_files: static/\1
upload: static/(.*\.(gif|png|jpg))
在main.py中
...
class ShowImage(webapp.RequestHandler):
def get(self):
rootpath = os.path.dirname(__file__)
file = rootpath + "/static/tracker.gif";
fh=open(file, 'r')
self.response.out.write(fh.read())
fh.close
...
我可以通过转到我的* .appspot.com / tracker.gif(根据app.yaml)看到文件上升 但是使用* .appspot.com / showimage返回
Traceback (most recent call last):
File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 510, in __call__
handler.get(*groups)
File "/base/data/home/apps/APPNAME/2.341131266814384624/main.py", line 170, in get
fh=open(file, 'r')
IOError: [Errno 2] No such file or directory: '/base/data/home/apps/APPNAME/2.341131266814384624/static/tracker.gif'
答案 0 :(得分:3)
已移除
- url: /(.*\.(gif|png|jpg))
static_files: static/\1
upload: static/(.*\.(gif|png|jpg))
来自app.yaml的显然你无法提供你愚蠢标记为静态
的文件夹中的内容从Deployment of static directory contents to google app engine
开始答案 1 :(得分:1)
说明Chris M.所指的内容:
部署应用程序时,与“static_files”处理程序的“upload”属性匹配的任何文件最终都与代码和相关文件完全不同。就您的代码而言,它们已从您希望它们所在的路径中删除。