添加 favicon

“favicon” 是浏览器用于标签和书签的图标。这有助于区分你的网站并赋予其独特的品牌。

一个常见问题是如何向 Flask 应用程序添加 favicon。当然,首先你需要一个图标。它应该是 16 × 16 像素,采用 ICO 文件格式。这不是一项要求,而是所有相关浏览器支持的实际标准。将图标作为 favicon.ico 放在你的静态目录中。

现在,为了让浏览器找到你的图标,正确的方法是在 HTML 中添加一个链接标记。例如

<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">

对于大多数浏览器来说,你只需要这些,但是一些非常旧的浏览器不支持此标准。旧的实际标准是在网站根目录中以这个名称提供此文件。如果你的应用程序未安装在域名的根路径中,则需要配置 Web 服务器以在根目录中提供图标,或者如果你无法做到这一点,那么你很倒霉。但是,如果你的应用程序是根目录,你可以简单地路由一个重定向

app.add_url_rule('/favicon.ico',
                 redirect_to=url_for('static', filename='favicon.ico'))

如果你想保存额外的重定向请求,你还可以使用 send_from_directory() 编写一个视图

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')

我们可以省略显式 mimetype,它将被猜测,但我们也可以指定它以避免额外的猜测,因为它将始终相同。

上述内容将通过你的应用程序提供图标,如果可能,最好配置你的专用 Web 服务器来提供它;请参阅 Web 服务器的文档。

另请参阅