Spec-Zone.ru › Flask 1.0

Добавление значка сайта

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

Часто задаваемый вопрос — как добавить значок сайта в приложение 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 в Википедии

© 2007–2020 Pallets
Licensed under the BSD 3-clause License.
https://flask.palletsprojects.com/en/1.0.x/patterns/favicon/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API