想测试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从项目内部去找,如果有几个蓝图文件下有重名可能会出现一系列问题像这个。留下问题待以后思考解决。