我想在从我的处理程序提供的html文件中的表单之前显示一些图像;我已经归结为下面的最小代码。
我的图片需要存储在哪里?我需要在app.yaml
中指定哪些图片才能看到它们?目前它们没有显示,大概是因为GAE在其他位置查找它们(我将gif图像保存在根文件夹中)。
以下是代码:
import webapp2
form="""
<img src="./c1.gif"><img src="./r1.gif">
<form action="/test">
<input name="q">
<input type="Submit">
</form>
"""
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/html'
self.response.write(form)
class TestHandler(webapp2.RequestHandler):
def get(self):
q = self.request.get("q")
self.response.headers['Content-Type'] = 'text/html'
self.response.write("Hello, still not working!")
app = webapp2.WSGIApplication([
('/', MainPage),
('/test', TestHandler)
], debug=True)
的app.yaml:
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /.*
script: helloworld.app
编辑:尝试以下以及我的app.yaml的其他变体,但没有运气:
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /images/*.gif
static_dir: images
- url: /.*
script: helloworld.app
答案 0 :(得分:1)
您几乎已经app.yaml
了,在Static file handlers中,您将找到配置静态目录处理程序所需的所有信息,但这很简单:
version: 1
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /images
static_dir: images
- url: /.*
script: helloworld.app
然后在html上你需要写一个完整的路径,从root开始:
<img src="/images/c1.gif">
当然,这假设您在images
旁边有一个app.yaml
文件夹,并且包含所述文件。
请务必阅读链接的文档,因为您应该注意其他细微差别(例如,静态目录是从实例外部的cdn提供的。)
答案 1 :(得分:0)
有很多方法可以实现这一目标。
您可以将其存储在静态文件夹中,并在app.yaml https://cloud.google.com/appengine/docs/python/gettingstartedpython27/staticfiles
创建一个从db为服务器提供映像的处理程序(并添加memcache层),如果您经常添加图像,这将非常有用。这样,如果添加新图像,则无需部署
将图像存储在云存储中。通过云存储提供图像不会消耗实例时间。