【发布时间】:2024-04-14 01:25:01
【问题描述】:
According to the Flask readme,蓝图静态文件可通过blueprintname/static 访问。但是由于某种原因,它不起作用。
我的蓝图是这样的:
-
app/frontend/views.py:frontend = Blueprint('frontend', __name__, template_folder='templates', static_folder='static') @frontend.route('/') etc... app/frontend/js/app.js:我的javascript- 在 Flask 应用中注册的蓝图(路由工作和一切)
当我转到 abc.com/frontend/static/js/app.js 时,它只会给出 404。
当我按照 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。
【问题讨论】:
-
您是如何在应用中注册您的蓝图的?
-
另外值得注意的是,您需要将 JS 文件放在
app/frontend/static/js/app.js而不是app/frontend/js/app.js(注意在文件路径中包含static文件夹)。