我正在与Tornado一起讨论,我正在尝试在启动时使用静态js脚本呈现index.html模板。
这是我的main.py:
import tornado.ioloop
import tornado.web
import tornado.websocket
import signal
import logging
from tornado.options import options
import Settings
is_closing = False
def signal_handler(signum, frame):
global is_closing
logging.info('exiting...')
is_closing = True
def try_exit():
global is_closing
if is_closing:
# clean up here
tornado.ioloop.IOLoop.instance().stop()
logging.info('exit success')
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("index.html", title = "Home")
class Application(tornado.web.Application):
def __init__(self):
settings = {
"template_path": Settings.TEMPLATE_PATH,
"static_path": Settings.STATIC_PATH,
}
handlers = [
(r"/", MainHandler),
#(r"/index", tornado.web.StaticFileHandler, dict(path=settings["template_path"]+"/index.html"))
]
tornado.web.Application.__init__(self, handlers, **settings)
if __name__ == "__main__":
application = Application()
tornado.options.parse_command_line()
signal.signal(signal.SIGINT, signal_handler)
application.listen(8888)
tornado.ioloop.PeriodicCallback(try_exit, 100).start()
tornado.ioloop.IOLoop.instance().start()
这是我的index.html:
<html>
<head>
<title>{{ title }}</title>
<script src="{{ static_url("js/main.js") }}" type="javascript"/>
</head>
<body>
<h1>This is currently touching your sockets</h1>
{{ title }}
</body>
</html>
当我请求'/'时,我得到一个空白页面。但是标题设置正确并且js正确嵌入。基本上整个头都存在,但整个身体是空的。
更进一步,html正确到达客户端(我可以在chrome网络开发工具中看到),在服务器发送的html中,正文存在,但不知何故后不呈现。
发生了什么事?