python – 使用蓝图静态路由时,Flask为蓝图静态文件引发404

我有一个蓝图,回家,在我的Flask应用程序上有前缀/.蓝图有一个静态文件夹,并使用static_folder参数进行配置.但是,链接到蓝图的静态文件会返回404错误,即使文件存在且URL看起来正确.为什么蓝图不能提供静态文件?

myproject/
    run.py
    myapp/
        __init__.py
        home/
            __init__.py
            templates/
                index.html
            static/
                css/
                    style.css

MYAPP / init.py:

from flask import Flask

application = Flask(__name__)

from myproject.home.controllers import home

application.register_blueprint(home, url_prefix='/')

MYAPP /家/ controllers.py:

from flask import Blueprint, render_template

home = Blueprint('home', __name__, template_folder='templates', static_folder='static')

@home.route('/')
def index():
    return render_template('index.html')

MYAPP /家庭/模板/ index.html的:

<head>
<link rel="stylesheet" href="{{url_for('home.static', filename='css/style.css')}}">
</head>
<body>
</body>

MYAPP /家庭/静态/ CSS / style.css中:

body {
    background-color: green;
}
最佳答案
您正在与Flask静态文件夹和您的蓝图发生冲突.由于蓝图安装在/,它与应用程序共享相同的静态URL,但应用程序的路由优先.更改蓝图的静态URL,使其不会发生冲突.

home = Blueprint(
    'home', __name__,
    template_folder='templates',
    static_folder='static',
    static_url_path='/home-static'
)

转载注明原文:python – 使用蓝图静态路由时,Flask为蓝图静态文件引发404 - 代码日志