Spring Bootのファビコンガイド
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。]