首页 > 解决方案 > Flask 应用程序正在从一个奇怪的路径获取资产(css、js)

问题描述

我有一个简单的烧瓶应用程序,它有一个奇怪的行为。

似乎传递路由名称会使浏览器从另一个文件夹中获取资产。

我的html

<link href="./static/assets/main.css" rel="stylesheet">
<a href="/work/22" title="" class="btn btn-default">Reserva já</a>

我的烧瓶路线

@app.route('/work/<int:store_id>')
def stores(store_id):
        mycursor.execute("SELECT * FROM stores WHERE store_id = %s" % store_id)
        result = mycursor.fetchone()
        return render_template("work.html")

控制台说浏览器现在正在这里寻找 css 文件:

http://localhost:5000/work/static/assets/main.css

我不明白为什么它将“工作”放在此处的路径中。我是烧瓶的新手,也许我不明白路由是如何工作的。我传递“work/22”是因为我想传递两条信息,这是不好的做法吗?

谢谢

标签: pythonflask

解决方案


这是一个相对路径:

<link href="./static/assets/main.css" rel="stylesheet">

它是相对于当前位置的,即/work/store_id. 这与在文件系统中的工作方式相同,因此/work当前目录和相对路径也将解析为/work/static/assets/main.css.

如果您希望路径为/static/assets/main.css,请删除前导点:

<link href="/static/assets/main.css" rel="stylesheet">

推荐阅读