1概要

ファビコンは、通常アドレスの横にあるブラウザに表示される小さなWebサイトのアイコンです。

多くの場合、Spring Bootのようなさまざまなフレームワークによって提供されているデフォルトのものを使用したくないでしょう。

このクイックチュートリアルでは、Faviconをカスタマイズするためのさまざまなアプローチを検討することによって、Spring Bootアプリケーションのfaviconをカスタマイズする方法を説明します。


2 Favicon

をオーバーライドする

Spring Bootアプリケーションのデフォルトのfaviconを上書きする最も簡単な方法は、

新しいfaviconを

resources

ディレクトリに配置することです

:

src/main/resources/favicon.ico

faviconファイルには、 ”

favicon.ico”

という名前を付けます。

そのファイルをプロジェクトのリソースディレクトリ内の

static

ディレクトリに配置することもできます。

src/main/resources/static/favicon.ico

起動中にSpring Bootが起動し、ルートリソースの場所にある

__favicon.ico

__fileとそれに続く静的コンテンツの場所をスキャンする

3.カスタムの場所を使う

faviconをresourcesディレクトリのルートレベルに置く代わりに、それをアプリケーションの他のイメージと一緒にしておくとよいでしょう。


__application.properties

__fileでデフォルトのfaviconを無効にすることでこれを実行できます。

spring.mvc.favicon.enabled=false

そしてハンドラを実装します。

@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("images");
        List<Resource> locations = Arrays.asList(classPathResource);
        requestHandler.setLocations(locations);
        return requestHandler;
    }
}

マッピングの順番に

__Integer.MIN

VALUE ____を設定したことに注意してください。そのため、このハンドラには最高の優先順位を与えます。

この設定により、

faviconファイルをアプリケーション構造内の任意の場所に格納できます

4. Faviconを無効にします

アプリケーションにfaviconが不要な場合は、プロパティ

__spring.mvc.favicon.enabled

__をfalseに設定して無効にできます。しかし、これを使用すると、ブラウザの検索時に「404 Not Found」エラーが発生します。

空のレスポンスを返す** カスタムファビコンコントローラを使えば、これを避けることができます。

----//...

@Controller
static class FaviconController {

    @GetMapping("favicon.ico")
    @ResponseBody
    void returnNoFavicon() {
    }
}
//...

===  5.まとめ

この記事では、Springブート・アプリケーションのデフォルトのfaviconをオーバーライドする方法、faviconにカスタムの場所を使用する方法、およびfaviconを使用したくない場合に404​​エラーを回避する方法を説明しました。

いつものようにコードサンプルが利用可能です
https://github.com/eugenp/tutorials/tree/master/spring-boot-mvc[over on
GitHub。]