Spring Webflux、静的コンテンツを提供するためにindex.htmlに転送する方法 質問する

Spring Webflux、静的コンテンツを提供するためにindex.htmlに転送する方法 質問する

spring-boot-starter-webflux(Spring Boot v2.0.0.M2) は、リソース内の static フォルダー内の静的コンテンツを提供するように既に構成されていますspring-boot-starter-web。ただし、index.html には転送されません。Spring MVC では、次のように構成できます。

@Override
public void addViewControllers(ViewControllerRegistry registry) {
    registry.addViewController("/").setViewName("forward:/index.html");
}

Spring Webflux でこれを行うにはどうすればよいでしょうか?

ベストアンサー1

WebFilter で実行します:

@Component
public class CustomWebFilter implements WebFilter {
  @Override
  public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
    if (exchange.getRequest().getURI().getPath().equals("/")) {
        return chain.filter(exchange.mutate().request(exchange.getRequest().mutate().path("/index.html").build()).build());
    }

    return chain.filter(exchange);
  }
}

おすすめ記事