用url_for在蓝图上找不到css

时间:2014-12-07 22:09:31

标签: python flask

我一直收到这个错误:

werkzeug.routing.BuildError: ('mainsite.mainsite_static', {'filename': 'vendor/bootstrap/css/bootstrap.min.css'}, None)

蓝图在我的views.py上声明为:

mainsite = Blueprint("mainsite", __name__, static_folder='mainsite_static')

从layout.html模板调用css文件:

    <link href="{{url_for('.mainsite_static', filename='vendor/bootstrap/css/bootstrap.min.css')}}" rel="stylesheet" media="screen">

文件夹结构为:

mainsite
|_views.py
|_templates
| |_layout.html  
|_mainsite_static
  |_vendor
    |_bootstrap
      |_css
        |_boostrap.min.css

从我能阅读的一切来看,它应该有效。我重命名了该文件夹,我在Blueprint的声明中添加了static_folder参数。没有其他同名的东西。添加了。 (也试过'mainsite.mainsite_static')

最后,mainsite.mainsite_static出现在url_map

<Rule '/mainsite_static/<filename>' (GET, OPTIONS, HEAD) -> mainsite.static>,

1 个答案:

答案 0 :(得分:1)

这应该可以改为

<link href="{{url_for('mainsite.static', filename='vendor/bootstrap/css/bootstrap.min.css')}}" rel="stylesheet" media="screen">

当你在url_map中突出显示时 - mainsite_static文件夹的端点为mainsite.static,可以在url_for中使用