发布于 2015-08-24 16:05:25 | 484 次阅读 | 评论: 0 | 来源: 网络整理
一个“页面图标”是浏览器在标签或书签中使用的图标,它可以给你的网站加上一个唯一 的标示,方便区别于其他网站。
那么如何给一个 Flask 应用添加一个页面图标呢?首先,显而易见的,需要一个图标。 图标应当是 16 X 16 像素的 ICO 格式文件。这不是规定的,但却是一个所有浏览器都 支持的事实上的标准。把 ICO 文件命名为 favicon.ico
并放入静态 文件目录 中。
现在我们要让浏览器能够找到你的图标,正确的做法是在你的 HTML 中添加一个链接。 示例:
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
对于大多数浏览器来说,这样就完成任务了,但是一些老古董不支持这个标准。老的标准 是把名为“ favicon.ico ”的图标放在服务器的根目录下。如果你的应用不是挂接在域的 根目录下,那么你需要定义网页服务器在根目录下提供这个图标,否则就无计可施了。 如果你的应用位于根目录下,那么你可以简单地进行重定向:
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')
上例中的 MIME 类型可以省略,浏览器会自动猜测类型。但是我们在例子中明确定义了, 省去了额外的猜测,反正这个类型是不变的。
上例会通过你的应用来提供图标,如果可能的话,最好配置你的专用服务器来提供图标, 配置方法参见网页服务器的文档。