Jinja-为每个扩展模板使用不同的CSS

时间:2018-10-02 07:59:55

标签: flask jinja2

我遇到过Flask-Appbuilder,因为它可以解决我的问题。我正在尝试为每个模板加载不同的CSS,而只有骨架保持不变。

我找到了此解决方案https://flask-appbuilder.readthedocs.io/en/latest/templates.html

但是它不起作用。反正不适合我。我使用了pip3 install flask-appbuilder,一切正常。我在模板目录中创建了appbuilder目录。然后我用了:

{% extends 'appbuilder/base.html' %}

{% block head_css %}
    {{ super() }}
    <link rel="stylesheet" href="url_for('static',filename='css/your_css_file.css')}}">
{% endblock %}

可能是什么原因引起的?就像block head_css被完全忽略了。仅加载基本的引导CSS。

1 个答案:

答案 0 :(得分:1)

您可以将所有模板扩展为一个layout.html文件,然后使用if语句通过访问request.endpoint来为每个模板选择正确的CSS样式表,这基本上是视图功能呈现模板。

{% if request.endpoint == 'index' %}
    <link href="{{ url_for('static', filename='main.css') }}" rel="stylesheet" type="text/css">
{% elif request.endpoint == 'another' %}
    <link href="{{ url_for('static', filename='another.css') }}" rel="stylesheet" type="text/css">