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

Flask使用分区Blueprint时如何定位各蓝图独立的static文件夹

Flask Blueprint独立static文件夹无法定位问题排查

你给出的Blueprint初始化参数本身配置是正确的,按以下步骤逐一排查即可:

  • 确认Blueprint已正确注册到主Flask应用
    你需要在项目入口main.py或website包的__init__.py中导入并注册admin蓝图,示例代码如下:
    from flask import Flask
    from website.admin.routes import admin
    
    app = Flask(__name__)
    # 注册蓝图,即使添加url_prefix参数也不影响静态文件的匹配规则
    app.register_blueprint(admin)
    
    if __name__ == '__main__':
        app.run(debug=True)
    
  • 修正模板中静态文件的引用方式
    直接写/static/xxx路径会默认匹配主应用的static文件夹,引用蓝图独立static下的资源必须使用蓝图专属的静态资源路由规则,模板中写法如下:
    <!-- 引用admin蓝图static下的admin_style.css -->
    <link rel="stylesheet" href="{{ url_for('admin.static', filename='admin_style.css') }}">
    <!-- 引用admin蓝图static下的index.js -->
    <script src="{{ url_for('admin.static', filename='index.js') }}"></script>
    
    url_for的第一个参数格式为*蓝图名*.static,这里的蓝图名就是你定义Blueprint时的第一个参数admin。
  • 可选:自定义蓝图静态资源访问路径
    如果你希望直接通过固定路径访问蓝图静态资源,可以在定义Blueprint时添加static_url_path参数:
    admin = Blueprint('admin', __name__,
                    template_folder="templates",
                    static_folder="static",
                    static_url_path="/admin/static") # 新增这行配置
    
    配置后直接访问/admin/static/admin_style.css即可获取对应资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:18:03