You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jinja中如何使用变量实现CSS文件的动态加载

最佳实现代码

直接在{{ }}内部用Jinja的字符串拼接运算符~拼接变量和固定后缀即可,不需要嵌套模板标记:

{% if UI_BRAND != 'default' %}
    <link rel="stylesheet" href="{{ url_for('static', filename=UI_BRAND ~ '-styles.css') }}">
{% endif %}

原理解释

  • Jinja语法中,{{ }}内部的作用域已经可以直接识别上下文变量,无需额外嵌套{{ }}标记
  • ~是Jinja内置的字符串拼接运算符,会自动把两侧的内容转成字符串后拼接,你传入的UI_BRAND值为blue时,拼接结果就是blue-styles.css,会直接作为filename参数传入url_for生成正确的静态资源路径

可选优化写法

如果后续需要多处引用该品牌样式文件名,可以提前用set定义变量,提升代码可读性:

{% set brand_style_file = UI_BRAND ~ '-styles.css' %}
{% if UI_BRAND != 'default' %}
    <link rel="stylesheet" href="{{ url_for('static', filename=brand_style_file) }}">
{% endif %}

内容的提问来源于stack exchange,提问作者Fredy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 05:48:03