2016-08-22 3 views
0

У меня есть html-страница, которая при загрузке из firefox работает, но когда она отправляется с сервера торнадо, она не отображает изображения. Мой смерч сервер:Python Tornado не загружает изображения из html

import tornado.ioloop 
import tornado.web 

class mainHandler(tornado.web.RequestHandler): 
    def get(self): 
     self.render('./prop.html') 
application = tornado.web.Application([ 
    (r"/", mainHandler) 
]) 

if __name__ == "__main__": 
    application.listen(8888) 
    tornado.ioloop.IOLoop.instance().start() 

мой prop.html:

<head> 
<meta charset="UTF-8" /> 
<meta name="description" content="" /> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<meta name="keywords" content="" /> 
<title>Title</title> 
<style> 



</style> 
</head> 
<body> 
<img src="./fig1.jpg" /> 
</body> 

</html> 

Может кто-нибудь мне помочь?

спасибо. ниже код дал мне результат, ожидаемый

<img src="/static/fig1.jpg" /> 

Но

дал мне следующую ошибку:

Exception: You must define the 'static_path' setting in your application to use static_url 
ERROR:tornado.access:500 GET/(127.0.0.1) 2.52ms 

Как установить эти настройки?

+0

ли ниже ответ не адресуется, как установить путь StaticFileHandler? В противном случае объект 'Application' принимает словарь' settings', в котором вы передаете это значение. http://www.tornadoweb.org/en/stable/web.html?highlight=static_path#application-configuration –

ответ

1

Торнадо не обрабатывает изображения специально.

/fig1.jpg - ресурс, и поскольку вы не определили его обработчик, Tornado не будет генерировать ответ. Для производства вы должны использовать веб-сервер, оптимизированный для обслуживания статических файлов, таких как nginx. Для развития, однако, вы можете сказать Торнадо служить статические файлы так:

application = tornado.web.Application([ 
    (r"/", mainHandler), 
    (r"/static/(.*)", tornado.web.StaticFileHandler, { 
     "path": "/your/static/folder" 
    }), 
]) 

Вы можете обновить HTML:

<img src="/static/fig1.jpg" /> 

Или еще лучше:

<img src="{{ static_url("fig1.jpg") }}" />