Рубрики
Без рубрики

Руководство по Фавикону в весенней загрузке

Узнайте, как настроить favicon в приложении Spring Boot.

Автор оригинала: baeldung.

1. Обзор

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

Часто мы не хотим довольствоваться стандартными, предоставляемыми различными фреймворками, такими как Spring Boot.

В этом кратком руководстве мы обсудим, как настроить favicon приложения Spring Boot , изучив различные подходы к настройке favicon.

2. Переопределение фавикона

Самый простой способ переопределить favicon по умолчанию приложения Spring Boot-это поместить новый favicon в каталог resources :

src/main/resources/favicon.ico

Файл favicon должен иметь имя ” favicon.ico” .

Мы также можем поместить этот файл в каталог static внутри каталога ресурсов проекта:

src/main/resources/static/favicon.ico

Spring Boot при запуске сканирует файл favicon.ico в корневом расположении ресурсов, а затем в расположении статического содержимого.

3. Использование пользовательского местоположения

Вместо того чтобы помещать фавикон в корневой уровень каталога ресурсов, мы могли бы сохранить его вместе с другими изображениями приложения.

Мы можем сделать это, отключив favicon по умолчанию в нашем файле application.properties :

spring.mvc.favicon.enabled=false

Стоит отметить, что начиная с Spring Boot 2.2 это свойство конфигурации устарело. Кроме того, Spring Boot больше не предоставляет фавикон по умолчанию, так как этот значок может быть классифицирован как утечка информации.

А затем реализуем наш обработчик:

@Configuration
public class FaviconConfiguration {
 
    @Bean
    public SimpleUrlHandlerMapping customFaviconHandlerMapping() {
        SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMapping();
        mapping.setOrder(Integer.MIN_VALUE);
        mapping.setUrlMap(Collections.singletonMap(
          "/favicon.ico", faviconRequestHandler()));
        return mapping;
    }

    @Bean
    protected ResourceHttpRequestHandler faviconRequestHandler() {
        ResourceHttpRequestHandler requestHandler
          = new ResourceHttpRequestHandler();
        ClassPathResource classPathResource 
          = new ClassPathResource("com/baeldung/images/");
        List locations = Arrays.asList(classPathResource);
        requestHandler.setLocations(locations);
        return requestHandler;
    }
}

Обратите внимание, что мы установили Целое число.MIN_VALUE для порядка отображения, поэтому дайте этому обработчику самый высокий приоритет.

С помощью этой конфигурации мы можем хранить ваш файл favicon в любом месте структуры приложения .

4. Изящно Отключите Favicon

Если нам не нужен какой-либо фавикон для нашего приложения, мы можем отключить его, установив свойство spring.mvc.favicon.enabled в false. Но при этом при поиске браузеров они получают ошибку “404 не найден”.

Мы можем избежать этого с помощью пользовательского контроллера favicon, который возвращает пустой ответ :

//...

@Controller
static class FaviconController {
 
    @GetMapping("favicon.ico")
    @ResponseBody
    void returnNoFavicon() {
    }
}

//...

5. Заключение

В этой статье мы увидели, как переопределить favicon по умолчанию приложения Spring boot, использовать пользовательское расположение для favicon и как избежать ошибки 404, если мы не хотим использовать favicon.

Как всегда, примеры кода доступны на GitHub.