Добавление значка сайта
«Значок сайта» (favicon) — это значок, используемый браузерами для вкладок и закладок. Это помогает отличить ваш сайт и придать ему уникальный бренд.
Часто задаваемый вопрос — как добавить значок сайта в приложение Flask. Сначала, конечно, вам нужен значок. Он должен быть размером 16 × 16 пикселей и в формате ICO. Это не требование, но де-факто стандарт, поддерживаемый всеми соответствующими браузерами. Поместите значок в каталог static как 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')
Мы можем пропустить явное указание MIME-типа, и он будет угадан, но, чтобы избежать дополнительных догадок, мы можем его указать, поскольку он всегда будет одинаковым.
Вышеприведённое действие обеспечит предоставление значка через ваше приложение, и если возможно, лучше настроить ваш выделенный веб-сервер для его предоставления; обратитесь к документации веб-сервера.
См. также
- Статья о значке сайта (Favicon) в Википедии Favicon
© 2007–2020 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/0.12.x/patterns/favicon/