Hello world
代码。同样在项目的根文件夹中,我有一个favicon.ico
。import os
from flask import Flask
app = Flask(__name__)
html = '''
<!doctype html>
<html>
<head>
<link rel="shortcut icon" href="/favicon.ico">
<title>Hello world!</title>
</head>
<body>
<p>Hello world!</p>
</body>
</html>
'''
@app.route('/')
def index():
return html
if __name__ == '__main__':
port = int(os.environ.get('PORT', 5000))
app.run(host='0.0.0.0', port=port)
当我浏览到我的应用程序时,没有看到
favicon
。此外,当我检查heroku logs
时,会得到以下404
行:2012-02-14T05:23:29+00:00 app[web.1]: <ip.ad.dr.es> - - [14/Feb/2012 05:23:29] "GET /favicon.ico HTTP/1.1" 404 -
#1 楼
我只是在这里找到它:http://flask.pocoo.org/docs/patterns/favicon/我对此有所不同,这就是我所做的:
在我的树中,我将图标存储为
static/images/favicon.ico
在HTML中,我在
<head>
中包含以下行:<link rel="shortcut icon" href="/favicon.ico">
在我的Flask应用中,我有以下用于
/favicon.ico
的URL处理程序@app.route('/favicon.ico')
def favicon():
return send_from_directory(os.path.join(app.root_path, 'static', 'images'),
'favicon.ico', mimetype='image/png')
为什么
image/png
?因为如果我使用image/vnd.microsoft.icon
,那么我浏览到http://myapp.heroku.com/favicon.ico
,我得到一个下载对话框。 image/png
只会在页面上显示收藏夹图标(至少在Chrome上显示)。#2 楼
我将我的favicon.ico图像放入Rails应用程序的public/
文件夹中。然后我部署到了heroku,不得不在新的浏览器出现之前清除浏览器缓存。#3 楼
这是我使用的方法:<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
我相信Internet Explorer的“快捷方式”应该在其中(尽管IE通常会检查favicon)。 />
但是,听起来图标位于错误的位置。您应该能够通过
yoursite.com/favicon.ico
访问它。您还可以通过在Google Chrome浏览器中查看页面源进行检查,并且/favicon.ico
将是带下划线的链接-单击该链接可打开您指定的位置。从您所说的来看,听起来您需要为现有文件设置例外以绕过该应用程序。如果您使用的是Apache,则应使用类似以下的命令:RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule your_rule_here [L]
您所使用的平台应具有相同的功能。
评论
这是在Flask上吗?我认为Flask为发送给它的每个URL GET寻找一个处理程序脚本。我仍然得到404。
–套件
2012年2月15日下午0:33
@Kit对不起,老实说,我对Heroku或Flask一无所知。我只是认为该应用程序运行良好,但输出了一些不正确的HTML。
–心怀不满的山羊
2012年2月15日下午0:43