根据Flask自述文件,可以在以下位置访问蓝图静态文件blueprintname/static。但是由于某种原因,它不起作用。
我的蓝图是这样的:
app/frontend/views.py:
app/frontend/views.py
frontend = Blueprint('frontend', __name__, template_folder='templates', static_folder='static') @frontend.route('/') etc...
app/frontend/js/app.js
abc.com/frontend/static/js/app.js
当我按照Flask自述文件获取静态文件时:
<script src="{{url_for('frontend.static', filename='js/app.js')}}"></script>
输出是
<script src="/static/js/app.js"></script>
这也不起作用。我的根app/static/文件夹中没有任何内容。
我无法访问蓝图中的任何静态文件!Flask读过我说,它应该可以工作!
admin = Blueprint('admin', __name__, static_folder='static')
默认情况下,路径的最右边部分是它在网络上公开的位置。由于此文件夹在此处称为静态,因此可以在蓝图+ / static的位置使用。假设蓝图已为/ admin注册,则静态文件夹将位于/ admin / static。
我在static_url_path参数中包含一个参数,以确保Blueprint的静态路径不会与主应用程序的静态路径冲突。
例如:
admin = Blueprint('admin', __name__, static_folder='static', static_url_path='/static/admin')
你可能已将自己的蓝图注册为网站的根目录:
app.register_blueprint(core, url_prefix='')
但“ static蓝图”中的视图与你所有其他“蓝图”视图没有什么不同;它使用该url_prefix值使URL唯一。
static
url_prefix
该核心 static观点也积极,所以你现在有要处理两条路线/static/的URL。因此,如果你要在没有URL前缀的情况下注册蓝图,则必须给这两个之一提供唯一的路径。
/static/
给Blueprint一个自定义static_url_path值,或者给核心Flask app。
static_url_path
app