Favicon (сокр. от англ. FAVorite ICON – "значок для избранного") – значок веб-сайта или веб-страницы. Отображается браузером во вкладке перед названием страницы, а также в качестве картинки рядом с закладкой, во вкладках и в других элементах интерфейса. © Wikipedia
В марте 1999 года компания Microsoft выпустила браузер Internet Explorer 5, который первым стал поддерживать "значки для избранного " (иконки сайта). С тех пор эта крошечная картинка есть у каждого сайта. Запустив свое первое веб-приложение, созданное на Delphi с использованием библиотеки uniGUI, я увидел в закладке браузера иконку Delphi.
Обычно для добавления сайту иконки достаточно поместить ее в корневой каталог сайта под названием "favicon.ico ". Но у сайта на UniGUI нет корневого каталога. А положить favicon.ico в каталог с модулем ничего не дает. Исправить эту маленькую неприятность можно различными способами.
Способ первый – самый очевидный. Так как наше веб-приложение написано на Delphi, то добавим ему иконку, как обычной программе. Заходим в параметры проекта, и выбираем иконку, которую хотим использовать в качестве иконки сайта.
Компилируем проект. Обновляем страницу в браузере и видим, что иконка стала такой, как мы хотели.
Второй способ – решение от автора uniGUI. В проекте на uniGUI обязательно есть один специализированный data module типа TUniGUIServerModule. Это singleton-объект, реализующий серверные функции веб-приложения. Итак, выбираем в проекте этот модуль, находим в инспекторе объектов свойство "Favicon" и загружаем в него нашу иконку.
Компилируем проект. Обновляем страницу в браузере и видим, что этот способ тоже рабочий.
Способ третий – дополняющий первые два. А, что делать, если хочется менять иконку сайта без перекомпиляции проекта, т.е. классическим способом "поместить в корневой каталог сайта под именем favicon.ico"? Для этого достаточно написать всего одну строчку кода. Снова открываем наследника TUniGUIServerModule и создаем в нем обработчик события OnBeforeInit.
Как видите, эта простая задача имеет такие же простые решения.
В марте 1999 года компания Microsoft выпустила браузер Internet Explorer 5, который первым стал поддерживать "значки для избранного " (иконки сайта). С тех пор эта крошечная картинка есть у каждого сайта. Запустив свое первое веб-приложение, созданное на Delphi с использованием библиотеки uniGUI, я увидел в закладке браузера иконку Delphi.
Обычно для добавления сайту иконки достаточно поместить ее в корневой каталог сайта под названием "favicon.ico ". Но у сайта на UniGUI нет корневого каталога. А положить favicon.ico в каталог с модулем ничего не дает. Исправить эту маленькую неприятность можно различными способами.
Способ первый – самый очевидный. Так как наше веб-приложение написано на Delphi, то добавим ему иконку, как обычной программе. Заходим в параметры проекта, и выбираем иконку, которую хотим использовать в качестве иконки сайта.
Компилируем проект. Обновляем страницу в браузере и видим, что иконка стала такой, как мы хотели.
Второй способ – решение от автора uniGUI. В проекте на uniGUI обязательно есть один специализированный data module типа TUniGUIServerModule. Это singleton-объект, реализующий серверные функции веб-приложения. Итак, выбираем в проекте этот модуль, находим в инспекторе объектов свойство "Favicon" и загружаем в него нашу иконку.
Компилируем проект. Обновляем страницу в браузере и видим, что этот способ тоже рабочий.
Способ третий – дополняющий первые два. А, что делать, если хочется менять иконку сайта без перекомпиляции проекта, т.е. классическим способом "поместить в корневой каталог сайта под именем favicon.ico"? Для этого достаточно написать всего одну строчку кода. Снова открываем наследника TUniGUIServerModule и создаем в нем обработчик события OnBeforeInit.
где sFaviconPath – это путь к файлу с иконкой. Например, он может быть задан в ini-файле или, как сделал я, он может быть эквивалентен каталогу, из которого запускается приложение. Теперь во время запуска веб-приложения иконка будет загружаться из внешнего файла, а при его отсутствии будет использована иконка добавленная одним из первых двух способов. Обращаю внимание, что загружать favicon нужно не из обработчика события OnCreate, а именно из обработчика события OnBeforeInit.procedure TServerModule.UniGUIServerModuleBeforeInit(Sender: TObject); begin try Favicon.LoadFromFile(sFaviconPath + 'Favicon.ico'); except end; end;
Как видите, эта простая задача имеет такие же простые решения.
Комментариев нет:
Отправить комментарий