Tornado路由规则疑问
时间: 2015-09-30来源:开源中国
前景提要
HDC调试需求开发(15万预算),能者速来!>>>
用Tornado搭建基于Python的web应用时,遇到这样一个问题:
比如,我的路由里面有如下的规则:
r"/test/M([0-9]+)",TestHandler
所以我在访问如http://xxx.xx.xx.xx/test/M1234这样的页面时,Tornado或让TestHandler去处理这个请求
在TestHandler里面的get方法render一个html文件test.html
test.html有一些引入css和js的代码:
比如:
<link rel="stylesheet" href="{{ css_file }}">
这里的css_file是TestHandler里面传进去的一个变量,代表渲染test.html时我需要引用的css文件


问题是:
由于我访问的页面URL是 http://xxx.xx.xx.xx/test/M1234
因此Tornado在渲染test.html时,总是会以 http://xxx.xx.xx.xx/test做前缀来引用test.html中的css或者是js路径,所以在打开这个页面时提示找不到:
http://xxx.xx.xx.xx/test/static/css/xx.css


static是一个包含所有静态js和css文件的目录,结构如下:
static
|

css-----xx.css

|

js-----xx.js



所以正确的路径应该是 http://xxx.xx.xx.xx/static/css/xx.css
而不是 http://xxx.xx.xx.xx /test /static/css/xx.css


难道我的路由规则里面不能有多于1级的的url地址吗
如r"/test/a/M([0-9]+)"
r"/test/M([0-9]+)"
因为Tornado在解析这些页面的css和js链接时,总是会引用成
http://xxx.xx.xx.xx /test /a /static/css/xx.css 和

http://xxx.xx.xx.xx /test /static/css/xx.css

实际上这个地址是不对的,有人知道怎么绕过这个问题吗?

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行