下午好,
我目前正在开发一个 Flask 应用程序,我遇到了一个以前从未发生过的错误。我目前正在 Flask 中设置动态路线。这是一段代码:
@app.route('/viewcar/<string:carId>')
def viewcar(carId):
print(carId)
car = Car.getCarById(carId)
return render_template("car.html", car=car)
但是,当我将任何变量传递给 URL 时(假设“http://127.0.0.1:5000/viewcar/4975facbbce511b65e14f44719340029-cf161184-91fc”),当我检查控制台中的输出时,它说 carId 等于favicon.ico 而不是“4975facbbce511b65e14f44719340029-cf161184-91fc”。关于这可能是什么的任何想法吗?我以前从未发生过这种情况。预先感谢。
我今天也遇到了这个问题,但是我注意到,当我在 Chrome 中的 http://127.0.0.1:5000/(版本 104.0.5112.101)启动我的开发 Flask 服务器时,控制台日志显示它抓取了
favicon.ico
对于我从 URL 获取的变量,但是当我使用 Safari(版本 15.3)时,URL 变量被正确解析。
现在我开始认为这与浏览器有关?
我自己对烧瓶真的很陌生,也遇到了这个问题。对我来说,我的模块中有另一条路线,该路线在我想要的路线之前执行,并且变量名称被分配在那里,所以看起来下一个(默认?)参数必须在我想要的路线中使用。我确信我只描述了一半正确,但希望它可以帮助人们更快地调试他们的问题。
只需将此代码添加到html文件的head标签中(在本例中为
car.html
)
<link rel="icon" type="image/png" href="favicon.png"/>
问题就会解决。
此问题似乎会在本地运行 chrome 时导致出现问题,但在本地运行 safari 时不会出现问题。此外,当我尝试在 AWS 应用程序运行器上部署我的应用程序时,两个浏览器上都存在此问题。添加以下代码行使其可以在本地和 AWS 应用程序运行器上运行
@app.route('/favicon.ico')
def favicon():
return send_from_directory(os.path.join(app.root_path, 'static'),
'favicon.ico', mimetype='image/vnd.microsoft.icon')
如果有人深入了解为什么会在烧瓶中发生这种情况,我很想知道。
我今天刚刚在 Next.js 应用程序路由器中使用动态路由遇到了这个问题。事实证明,许多浏览器请求 favicon.ico 是很常见的。我可以想到三种解决方案,第一个是我选择的选项。