Python 发送\u静态\u文件未从Blueprint根目录下的静态文件夹中拾取
从我的蓝图中的Python 发送\u静态\u文件未从Blueprint根目录下的静态文件夹中拾取,python,flask,static-files,blueprint,Python,Flask,Static Files,Blueprint,从我的蓝图中的views.py中,我试图使用send\u static\u文件来交付index.html,但它无法正常工作 我有一个名为main的蓝图,我在blueprint文件夹mod\u main from flask import Blueprint mod_main = Blueprint('main',name,static_folder='/static', static_url_path='/static') from . import views 在我的主app中,在根ap
views.py
中,我试图使用send\u static\u文件
来交付index.html
,但它无法正常工作
我有一个名为main的蓝图,我在blueprint文件夹mod\u main
from flask import Blueprint
mod_main = Blueprint('main',name,static_folder='/static', static_url_path='/static')
from . import views
在我的主app
中,在根app
文件夹下的\uuuu init\uuuuu.py
中初始化
app = Flask(__name__)
from .mod_main import mod_main as main_blueprint
app.register_blueprint(main_blueprint,url_prefix='/main')
@mod_main.route('/')
def index():
return mod_main.send_static_file('index.html')
在blueprint main(mod_main
文件夹)中的views.py
文件下
但它一直解析为404未找到
。我如何提供index.html
的任何线索,它位于根应用程序
文件夹中的静态
文件夹下(如果我在blueprint中创建一个静态文件夹,我可以让它工作。但我想从根应用程序
交付它)
这是基本文件的结构
app
|
-- mod_main/
|
-- views.py
-- __init__.py
-- __init__.py
-- static /
|
-- index.html
您已告知blueprint在文件系统根目录中的
/static
或名为static
的文件夹中查找静态文件。假设您不想将其更改为static
并将文件夹移动到mod_main
,那么您可以采取几种不同的方法
如果要区分应用程序的静态文件和蓝图的静态文件,可以通过当前应用程序提供文件
# mod_main/views.py
from flask import current_app
from . import mod_main
@mod_main.route('/')
def index():
return current_app.send_static_file('index.html')
但是,如果您打算将现有的static
用作唯一的静态文件夹,则需要更新蓝图以使用此文件夹
# mod_main/__init__.py
import os
from flask import Blueprint
static_folder = os.path.join(os.pardir, 'static')
mod_main = Blueprint(
'main', __name__, static_folder=static_folder, static_url_path='/static')
from . import views
您确定正在调用
index
?mod_main/uu init_uuuuuuuuuuuuuuuupy
是什么样子的?dirn,这就是从flask导入Blueprint mod_main=Blueprint('main',name,static_folder='/static',static_url_path='/static')中mod main/uu init uuuuuuuuuuuuuuuuuuuuuuuuuuuu。导入视图最好将其放在原始帖子中,以便正确格式化。另外,form
是否只是一个打字错误,或者它在代码中的显示方式是这样的?完成。不,当我在这里输入表单时,表单只是一个输入错误:-)我试图使用这个示例来发送来自当前蓝图的静态文件。对于那些对此感兴趣的人,请执行以下操作:您的\u蓝图\u对象。发送\u静态\u文件