添加网站图标¶
“网站图标”(favicon)是浏览器用于标签页和书签的图标。这有助于区分您的网站并赋予其独特的品牌形象。
一个常见的问题是如何向 Flask 应用程序添加网站图标。首先,当然,您需要一个图标。它应该是 16 × 16 像素,并且是 ICO 文件格式。这不是强制要求,而是所有相关浏览器都支持的事实标准。将图标放在您的静态目录中,命名为 favicon.ico
。
现在,为了让浏览器找到您的图标,正确的方法是在您的 HTML 中添加一个 link 标签。例如:
<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 服务器的文档。
另请参阅¶
Wikipedia 上关于 网站图标 的文章