Herokuにファビコンをデプロイするにはどうすればよいですか?


11

Hello worldHerokuアプリ用に次のコードがあります。また、私のプロジェクトのルートフォルダーには、favicon.ico

import os
from flask import Flask
app = Flask(__name__)

html = '''
<!doctype html>
<html>
  <head>
    <link rel="shortcut icon" href="/webmasters//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 -

回答:


6

私はそれをここで見つけました:http : //flask.pocoo.org/docs/patterns/favicon/

私はそれと少し異なっていて、これが私がしたことです:

  1. 私のツリーでは、アイコンを static/images/favicon.ico
  2. HTMLでは、次の行があり<head>ます。

    <link rel="shortcut icon" href="/webmasters//favicon.ico">
    
  3. 私のFlaskアプリには、次のURLハンドラーがあります /favicon.ico

    @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イメージpublic/を私のRailsアプリのフォルダーに入れました。次に、herokuにデプロイし、新しいキャッシュが表示される前にブラウザーのキャッシュをクリアする必要がありました。


1

これが私が使うものです:

<link rel="shortcut icon" type="image/x-icon" href="/webmasters//favicon.ico">

Internet Explorerの場合、「ショートカット」がそこにあるはずです(IEは通常、ファビコンをチェックしますが)。

ただし、アイコンが間違った場所にあるようです。経由でアクセスできるはずyoursite.com/favicon.icoです。Google Chromeでページのソースを表示して確認することもでき/favicon.ico、下線付きのリンクになります。指定した場所を開くには、リンクをクリックしてください。

更新:.htaccessファイルはありますか?あなたが言ったことから、既存のファイルを例外としてアプリをバイパスする必要があるようです。Apacheを使用している場合は、次のようなものを使用します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule your_rule_here [L]

使用しているプラ​​ットフォームに相当するものがあるはずです。


これはフラスコにありますか?Flaskは、それに送信されたすべてのURL GETのハンドラスクリプトを探していると思います。私はまだ404を取得します。
キット

@キット申し訳ありませんが、正直に言うと、HerokuやFlaskについては何も知りません。アプリは正常に動作すると想定しましたが、正しくないHTMLを出力しました。
DisgruntledGoat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.