我的蓝图定义为:
auth_login = Blueprint('auth_login', __name__, template_folder='templates', static_folder='static', static_url_path='/static')
我将其注册为:
app.register_blueprint(auth_login, url_prefix='/user')
我有一条路线:
@auth_login.route('/<username>/')
def profile(username):
return render_template('profile/user.html',
username = username)
使用此设置,/ user / endpoint永远不会设法加载静态文件,
“GET /user//static/css/lib/bootstrap.min.css HTTP / 1.1”404 - “GET /user//static/css/lib/font-awesome/css/font-awesome.min.css HTTP / 1.1”404 -
我真正想要的是查看根应用程序的静态文件夹而不是蓝图,所以我希望它请求
“GET /static/css/lib/bootstrap.min.css HTTP / 1.1”200 -
是否可以通过static_folder或static_url_path进行配置,以便路由在根目录中查找静态文件,而不是相对于蓝图的安装位置?
答案 0 :(得分:5)
默认情况下,Flask设置/static
网址以提供{application_root}/static
之外的文件 - 您覆盖默认使用您的蓝图代码。 (该网址仍为/static
,但该文件夹为{application_root}/path/to/blueprint/static
,根据事情的声音,这不是您想要的内容。
只需删除您static_folder
初始化的static_url
和Blueprint
参数,并且网址应该可以正常运行(假设您拥有适当的CSS) {application_root}/static
文件夹。)