### 导航
- [索引](# "总目录")
- [下一页](# "数据流") |
- [上一页](# "在 Flask 中使用 MongoKit") |
- [Flask 0.10.1 文档](#) »
- [Flask 代码模式](#) »
# 添加 Favicon
“Favicon” 是指您的网页浏览器显示在标签页或者历史记录里的图标。这个图标能帮助用户将您的网站与其他网站区分开,因此请使用一个独特的标志
一个普遍的问题是如何将一个 Favicon 添加到您的 Flask 应用中。首先,您当然得先有一个可用的图标,此图标应该是 16 x 16 像素的,且格式为 ICO 。这些虽然不是必需的规则,但是是被所有浏览器所支持的事实标准。将这个图标放置到您的静态文件目录下,文件名为 favicon.ico 。
现在,为了让浏览器找到您的图标,正确的方法是添加一个 Link 标签到 HTML 当中例如:
~~~
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">
~~~
对于大多数浏览器来说,这就足够了。然后一些非常老的浏览器不支持这个标准。原来的标准是在网站的根路径下,查找 favicon 文件,并使用它。如果应用程序不是挂在在域名的根路径,您要么需要配置 Web 服务器来在根路径提供这一图标,要么您就很不幸地无法实现这一功能了。然而,如果您饿应用是在根路径,您就可以简单的配置一条重定向的路由:
~~~
app.add_url_rule('/favicon.ico',
redirect_to=url_for('static', filename='favicon.ico'))
~~~
如果想要保存额外的重定向请求,您也可以使用 [send_from_directory()](# "flask.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 ,浏览器将会自行猜测文件的类型。但是我们也可以指定它以便于避免额外的猜测,因为这个 mimetype 总是固定的。
以上的代码将会通过您的应用程序来提供图标文件的访问。然而,如果可能的话配置您的网页服务器来提供访问服务会更好。请参考对应网页服务器的文档。
### 参考
- Wikipedia 上有关 [Favicon](http://en.wikipedia.org/wiki/Favicon) [http://en.wikipedia.org/wiki/Favicon] 的文章
© 版权所有 2013, Armin Ronacher.
- 欢迎使用 Flask
- 前言
- 给有经验程序员的前言
- 安装
- 快速入门
- 教程
- 介绍 Flaskr
- 步骤 0: 创建文件夹
- 步骤 1: 数据库模式
- 步骤 2: 应用设置代码
- 步骤 3: 创建数据库
- 步骤 4: 请求数据库连接
- 步骤 5: 视图函数
- 步骤 6: 模板
- 步骤 7: 添加样式
- 福利: 应用测试
- 模板
- 测试 Flask 应用
- 记录应用错误
- 配置处理
- 信号
- 即插视图
- 应用上下文
- 请求上下文
- 用蓝图实现模块化的应用
- Flask 扩展
- 与 Shell 共舞
- Flask 代码模式
- 大型应用
- 应用程序的工厂函数
- 应用调度
- 使用 URL 处理器
- 部署和分发
- 使用 Fabric 部署
- 在 Flask 中使用 SQLite 3
- 在 Flask 中使用 SQLAlchemy
- 上传文件
- 缓存
- 视图装饰器
- 使用 WTForms 进行表单验证
- 模板继承
- 消息闪现
- 用 jQuery 实现 Ajax
- 自定义错误页面
- 延迟加载视图
- 在 Flask 中使用 MongoKit
- 添加 Favicon
- 数据流
- 延迟请求回调
- 添加 HTTP Method Overrides
- 请求内容校验码
- 基于 Celery 的后台任务
- 部署选择
- mod_wsgi (Apache)
- 独立 WSGI 容器
- uWSGI
- FastCGI
- CGI
- 聚沙成塔
- API
- JSON 支持
- Flask 中的设计决策
- HTML/XHTML 常见问题
- 安全注意事项
- Flask 中的 Unicode
- Flask 扩展开发
- Pocoo 风格指引
- Python 3 支持
- 升级到最新版本
- Flask Changelog
- 许可证
- 术语表