【发布时间】:2019-12-15 03:26:37
【问题描述】:
我有 2 个路由功能,一个获取所有用户,一个获取特定用户。这两个函数都呈现相同的模板。第一个功能工作正常,问题出在第二个。渲染模板时,它会尝试从另一个目录加载静态文件。
我尝试为每个模板使用不同的模板,但问题仍然存在。
获取所有用户路由:
@app.route('/users')
def list_users():
users = Users.query.all()
return render_template('users.html', users=users)
获取一条用户路由:
@app.route('/users/<username>')
def get_user(username):
user = Users.query.filter_by(name=username).first()
if user:
return render_template('users.html', users=[user])
get_user路由函数渲染的模板:
127.0.0.1 - - [07/Aug/2019 13:35:56] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2019 13:35:57] "GET /favicon.ico HTTP/1.1" 404 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/Ana HTTP/1.1" 200 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/static/vendor/fontawesome-free/css/all.min.css HTTP/1.1" 404 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/static/css/sb-admin-2.min.css HTTP/1.1" 404 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/static/img/uatronica_black_transparent.png HTTP/1.1" 404 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/static/vendor/jquery/jquery.min.js HTTP/1.1" 404 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/static/vendor/bootstrap/js/bootstrap.bundle.min.js HTTP/1.1" 404 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/static/vendor/jquery-easing/jquery.easing.min.js HTTP/1.1" 404 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/static/js/sb-admin-2.min.js HTTP/1.1" 404 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/static/vendor/chart.js/Chart.min.js HTTP/1.1" 404 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/static/js/demo/chart-area-demo.js HTTP/1.1" 404 -
127.0.0.1 - - [07/Aug/2019 13:36:06] "GET /users/static/js/demo/chart-pie-demo.js HTTP/1.1" 404 -
它试图从 /users/static/ 而不是 /static/ 加载 css 文件。这是为什么呢?
【问题讨论】:
-
如果模板使用相对路径,
http://host:port/users/Ana的“当前目录”可能是 /users/。 -
@h4z3 模板正在使用
<link href="./static/vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">。是这个问题吗? -
请分享 users.html 的脚本以供审核。
-
@DataFramed 问题解决了,查看大牛的回答。谢谢。