html中的嵌入图像未从Google App Engine项目中显示

时间:2015-06-24 04:41:15

标签: python html image google-app-engine

我想在从我的处理程序提供的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

2 个答案:

答案 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层),如果您经常添加图像,这将非常有用。这样,如果添加新图像,则无需部署

  • 将图像存储在云存储中。通过云存储提供图像不会消耗实例时间。