我有一个应用程序,用户可以在其中从磁盘上传图像。只要用户登录,该图像就会显示在应用程序的每个页面中。
这是将图像加载到页面的模板部分:
{% if currentService.image %}
<img src='img?img_id={{ currentService.key() }}'></img>
{% else %}
<img src='static/no_image.jpeg' />
{% endif %}
这就是我在控制器中进行重定向的方式:
def main():
app = webapp2.WSGIApplication([
('/img', ImageHandler),
('/.*', MainPage)
],debug=True)
wsgiref.handlers.CGIHandler().run(app)
这是相应的处理程序类:
class ImageHandler(webapp2.RequestHandler):
def get(self):
try:
rsRequest = db.get(self.request.get("img_id"))
if rsRequest.image:
self.response.headers['Content-Type'] = "image/png"
self.response.out.write(str(rsRequest.image))
else:
self.response.out.write("No Image")
except:
tb = traceback.format_exc()
ErrorLog(descripcion = str(tb)).put()
self.doRender('error_page.html', {'mensaje':tb})
这是模型类:
class Service(db.Model):
name = db.StringProperty(required = True)
image = db.BlobProperty()
一切正常。图像始终加载成功。
但是当我在生产中测试我的应用程序时,图像加载速度非常缓慢,而且是渐进式的。
我不知道我做错了什么,因为当我在 localhost 中测试应用程序时,图像加载速度很快(如缓存图像)。
我应该怎么做才能避免缓慢的图像加载?