前景提要
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
实际上这个地址是不对的,有人知道怎么绕过这个问题吗?