先上web模块项目结构图:
首先要将/static(注意,只能以static,不能带s)和/templates文件夹绑定到tornado.web.Application当中,这样才能让服务器加载渲染html、css、JavaScript等项目文件,具体实现代码如下:
def make_app():
setting = dict(
template_path=os.path.join(os.path.dirname(__file__), "templates"),
static_path=os.path.join(os.path.dirname(__file__), "static"),
)
return tornado.web.Application([(r'/Demo', DemoHandler),
],
**setting
)
然后修改html当中对css、js文件的引入方式,一定要多加一对引号啊!!!
以bootstrap.min.css文件为例
错误写法示例:
-
<link rel="stylesheet" type="text/css" href="{{static_url(css/bootstrap.min.css)}}">
这里很容易忽略,因为当你写成下面这种形式: -
<link rel="stylesheet" type="text/css" href="{{"static_url(css/bootstrap.min.css"}}">
IDE会提示错误(实际也没错),所以建议最好用’和"交替的形式,如下: -
<link rel="stylesheet" type="text/css" href="{{static_url('css/bootstrap.min.css')}}">
后来想想,觉得我这种错误很低级,如果把static_url当作方法,传入的变量本来就不能直接以bootstrap.min.css这种直接传,好歹变成字符串吧…用单引号和双引号都算。
既然花了我这么久才发现这个问题,有必要记录一下!