리액트는 single page application이라 빌드 파일을 스프링부트에 올리면 새로고침 할 때 실제로 스프링 부트에는 없는 페이지이기 때문에 white label error page 가 뜨는데,
이는 스프링 부트 쪽 WebConfig.java 파일을 생성해서 설정해주어야 한다.
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addViewController("/")
.setViewName("스프링 프로젝트 내 리액트 빌드 파일 경로");
registry.addViewController("/{spring:\\w+}")
.setViewName("스프링 프로젝트 내 리액트 빌드 파일 경로");
registry.addViewController("/**/{spring:\\w+}")
.setViewName("스프링 프로젝트 내 리액트 빌드 파일 경로");
registry.addViewController("/{spring:\\w+}/**{spring:?!(\\.js|\\.css|\\.json)$}")
.setViewName("스프링 프로젝트 내 리액트 빌드 파일 경로");
}
}
동작원리는 아래 주소에서 확인하면 될 듯