tornado 静态文件的路径错误
我写了一个页面,引用了bootstrap中的文件,刚开始我的目录结构是这样的:
-
bootstrap
-
css
- bootstrap.css
-
js
- bootstrap.js
- img
-
css
-
tornado
- example.html
目录中的文件并没有全部列出来。
example.html中引用bootstrap的代码如下:
<link href="../bootstrap/css/bootstrap.css" rel="stylesheet" media="screen">
<script src="http://code.jquery.com/jquery.js"></script>
<script src="../bootstrap/js/bootstrap.min.js"></script>
我的hello.py代码如下:
import tornado.ioloop
import tornado.web
import os
class MainHandler(tornado.web.RequestHandler):
def get(self):
print "here"
self.render("example.html")
application = tornado.web.Application(
[ (r"/", MainHandler) ]
)
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
运行的时候发现bootstrap的样式表和js效果全部没有,在firebug下面看到很多下面这样的错误:
"NetworkError: 404 Not Found - http://localhost:8888/bootstrap/js/bootstrap.js "
然后,我看了tornado的文档,做了如下改动: 在tornado目录下面新建一个static目录,把bootstrap放进去,目录结构如下:
-
tornado
-
static
-
bootstrap
- css
- js
- img
-
bootstrap
- hello.py
- example.html
-
static
把example.html对bootstrap文件的引用改成下面这样:
<link href="static/bootstrap/css/bootstrap.css" rel="stylesheet" media="screen">
<script src="http://code.jquery.com/jquery.js"></script>
<script src="static/bootstrap/js/bootstrap.min.js"></script>
hello.py修改部分如下:
settings = {
"static_path": os.path.join(os.path.dirname(__file__), "static")
}#配置静态文件路径
application = tornado.web.Application(
[(r"/", MainHandler),],**settings
)
再次执行发现结果正常。我很纳闷,tornado一定要配置static_path吗?我之前的错误是在哪里? 而且我把bootstrap目录放回最初的目录,然后这样配置settings:
settings = {
"static_path": os.path.join(os.path.dirname(__file__), "../bootstrap")
}
example.html还是最初那样,这样修改还是错误,求教到底是哪里的问题?
老F_混乱状态
11 years, 5 months ago