favicon.ico在flask app中导致404错误

时间:2018-02-19 09:32:45

标签: html browser flask

我在日志文件中发现了很多条目,这表明有人试图加载/favicon.ico和类似的文件

GET - /favicon.ico
GET - /apple-touch-icon.png
GET - /apple-touch-icon-precomposed.png

我在线阅读了很多关于这个问题的内容,但我无法摆脱它。这就是我所擅长的。首先,我将以下内容添加到我的头标记

<link rel="shortcut icon" href="/static/favicon/favicon.ico" type="image/x-icon">

然而,即使我在我的标题中提供了这些信息,似乎有些浏览器并不关心它,仍然会调用/favicon.ico? 所以我想把ico文件放在root用户并完成它,但它似乎不起作用?如果我打电话

http://localhost:5000/static/favicon/favicon.ico

我到了图标,但是

http://localhost:5000/favicon.ico

不起作用(给404)?我清除了我的缓存,并尝试使用Chrome和Safari,但我在两种情况下都获得了404?我真的很茫然。如果我在静态文件夹中移动图像并调用

http://localhost:5000/static/favicon.ico

它有效,但根文件夹不是吗?我在这里缺少什么?

2 个答案:

答案 0 :(得分:6)

默认情况下,flask只会提供/ static端点上的文件。您可以添加自定义视图来处理默认/ favicon请求。

烧瓶文档中有关于此主题的更多信息:

http://flask.pocoo.org/docs/0.12/patterns/favicon/

import os 
from flask import send_from_directory     

@app.route('/favicon.ico') 
def favicon(): 
    return send_from_directory(os.path.join(app.root_path, 'static'), 'favicon.ico', mimetype='image/vnd.microsoft.icon')

答案 1 :(得分:0)

我遇到了一个非常相似的问题。我尚无必要对评论添加评论。因此,我将使用“您的答案”进行操作。对于需要如何使用url_for()的更具体答案的人,这是一种解决方法。

dp = [tmp, tmp, tmp, tmp]

要生成必要的文件,请使用以下链接:Code所有文件均已复制到/ static目录。