ファビコンの追加—フラスコのドキュメント

提供:Dev Guides
< FlaskFlask/docs/1.0.x/patterns/favicon
移動先:案内検索

ファビコンを追加する

「ファビコン」は、ブラウザがタブやブックマークに使用するアイコンです。 これはあなたのウェブサイトを区別し、それにユニークなブランドを与えるのに役立ちます。

よくある質問は、Flaskアプリケーションにファビコンを追加する方法です。 まず、もちろん、アイコンが必要です。 16×16ピクセルで、ICOファイル形式である必要があります。 これは必須ではありませんが、関連するすべてのブラウザでサポートされているデファクトスタンダードです。 アイコンを静的ディレクトリにfavicon.icoとして配置します。

さて、ブラウザにアイコンを見つけてもらうための正しい方法は、HTMLにリンクタグを追加することです。 したがって、たとえば:

<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}">

ほとんどのブラウザに必要なのはこれだけですが、一部の非常に古いブラウザはこの標準をサポートしていません。 古いデファクトスタンダードは、このファイルをこの名前でWebサイトのルートに提供することです。 アプリケーションがドメインのルートパスにマウントされていない場合は、ルートでアイコンを提供するように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サーバーのドキュメントを参照してください。

参考