是这样的。。。
这是我在base/post.html文件中写的:
<link href="{{ url_for('static',filename='css/bootstrap.min.css') }}" rel="stylesheet">
这是注册的蓝图:
mod = Blueprint("base",name)
@mod.route("/ogin")
def login():
return render_template("base/post.html")
这是请求:
http://127.0.0.1/ogin
这是返回的资源:
<link href="/ogin/static/css/style.css" rel="stylesheet">
问题是:
为什么返回的资源会有ogin前缀?我用nginx跑的,配置如下:
location / {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME "";
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_pass unix:/tmp/o.sock;
}
location ~ ^/(static/){
root /root_path/app;
access_log off;
expires max;
}
1
wog 2015-01-05 18:16:17 +08:00
这样注册
mod = Blueprint('base',name, static_folder="../static", template_folder="../templates") |
3
repus911 2015-01-05 18:36:12 +08:00
相对路径的问题?
虽然我们也用falsk 不过static的用法不一样... |
4
Jelly OP @repus911 经过了nginx后,url_for('static')的返回值就会加上请求的前缀,如果不用nginx+fcgi直接用flask跑,url_for('static')就会返回正确的资源,应该不是路径问题……
|
5
yegle 2015-01-07 04:52:52 +08:00
用了Blueprint,本来就会把所有URL加上前缀,你先检查一下是否需要用蓝图。
|