flask返回不使用jinja模板渲染的html,与blueprint的static目录问题

想测试flask不使用render_template返回正常的html页面,查找到了send_static_file方法,在app的static目录下建立test.html文件。
然而我在蓝图的视图函数中使用该方法时 return web.send_static_file('test.html')显示 该对象没有static文件。
我想到我的蓝图注册时

   web = Blueprint('web', __name__, template_folder='templates')

于是乎改为

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

但是之后显示404,找不到test.html
从flask import current_app
使用 return current_app.send_static_file('test.html')后正确找到
于是乎猜测可能是文件的结构出了问题。


经过尝试,在蓝图中web目录下建立static文件夹后,test.html文件能正确找到。
猜想可能是app使用的是app文件夹下的static,蓝图相当于一个子app,所以自然使用它下面的static文件夹了。但是注册蓝图时的static_folder我觉得相当于是只是指定了这个文件夹的名称,然后flask从项目内部去找,如果有几个蓝图文件下有重名可能会出现一系列问题像这个。留下问题待以后思考解决。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值