Добавление фавикона

Фавикон» - это иконка, используемая браузерами для вкладок и закладок. Это помогает выделить ваш сайт и придать ему уникальный бренд.

Часто задаваемый вопрос - как добавить фавикон в приложение Flask. Во-первых, конечно, вам нужен значок. Она должна быть размером 16 × 16 пикселей и в формате файла ICO. Это не требование, а стандарт де-факто, поддерживаемый всеми соответствующими браузерами. Поместите иконку в вашу статическую директорию как favicon.ico.

Теперь, чтобы заставить браузеры найти ваш значок, правильным способом будет добавить тег ссылки в HTML. Например:

<link rel="shortcut icon" href="{{ url_for('static', filename='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')

Мы можем не указывать явный mimetype, и он будет угадан, но мы также можем указать его, чтобы избежать лишнего угадывания, поскольку он всегда будет одним и тем же.

Вышеописанное будет обслуживать иконку через ваше приложение, и если возможно, лучше настроить ваш выделенный веб-сервер для ее обслуживания; обратитесь к документации веб-сервера.

См. также

  • Статья Favicon в Википедии

Вернуться на верх