ユーザーがディスクから画像をアップロードできるアプリがあります。その画像は、ユーザーがログに記録されている限り、アプリケーションのすべてのページに表示されます。
これは、画像をページにロードするテンプレートの部分です。
{% 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()
すべてが正常に動作します。画像は常に正常に読み込まれます。
しかし、本番環境でアプリをテストすると、画像の読み込みが非常に遅くなります。
ローカルホストでアプリをテストすると、開発中に画像が高速に読み込まれるため(キャッシュされた画像のように)、何が間違っているのかわかりません。
画像の読み込みが遅くなるのを防ぐにはどうすればよいですか?