我在Flask应用程序中设置了一个蓝图,但我似乎无法使我的静态文件夹工作.我试图联系到他时遇到404错误:
127.0.0.1 - - [11/Sep/2014 15:14:20] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 -
127.0.0.1 - - [11/Sep/2014 15:14:20] "GET /static/static/css/bootstrap.min.css HTTP/1.1" 404 -
Run Code Online (Sandbox Code Playgroud)
css one也附加静态两次.JS具有正确/静态但似乎不起作用.现在,我的静态文件夹位于蓝图根路径(app/dashboard)中.我试过把它插入app/static但我得到了同样的错误.
我有以下设置:
app/dashboard/__init__.py:
from flask import Blueprint
dashboard = Blueprint('dashboard', __name__, template_folder='templates', static_folder='static')
from application.dashboard import controllers
Run Code Online (Sandbox Code Playgroud)
app/__init__.py:
# Blueprints
from flask import Blueprint
from application.dashboard import dashboard
app.register_blueprint(dashboard)
Run Code Online (Sandbox Code Playgroud)
在app/templates/layout.html,我有一行引用两个静态文件,如下所示:
<link rel="stylesheet" type="text/css" href="{{ url_for('dashboard.static', filename='css/bootstrap.min.css') }}">
<script src="{{ url_for('dashboard.static', filename='js/bootstrap.min.js') }}"></script>
Run Code Online (Sandbox Code Playgroud)
我的app/dashboard/static目录:
$ tree application/dashboard/static/
application/dashboard/static/
??? css
? ??? bootstrap-theme.css
? ??? bootstrap-theme.css.map
? ??? bootstrap-theme.min.css
? ??? bootstrap.css
? ??? bootstrap.css.map
? ??? bootstrap.min.css
??? fonts
? ??? glyphicons-halflings-regular.eot
? ??? glyphicons-halflings-regular.svg
? ??? glyphicons-halflings-regular.ttf
? ??? glyphicons-halflings-regular.woff
??? js
??? bootstrap.js
??? bootstrap.min.js
Run Code Online (Sandbox Code Playgroud)
知道这里发生了什么吗?如何正确构建我的蓝图?我按照Flask文档中的说明操作,我收到此错误.
谢谢.
tbi*_*icr 10
看起来您的应用程序和蓝图有两个相同的路径问题.看到我的另一个答案第3部分.
您的应用程序路由/static/<path:path>到.static端点.
您的蓝图路由/static/<path:path>到dashboard.static端点,因为您没有url_prefix注册蓝图和/static- 静态文件夹前缀.
所以你可以使用下一个解决方案之一:
url_prefix注册蓝图时设置.app = Flask(__name__, static_folder=None).