ResourceHandler 적용하기


이번 프로젝트에서 React와 Spring을 빌드하여 하나의 앱으로 배포했다

WhiteLabel Error

어떤 페이지로 접속을 했는데
그런데 React로 보여야할 페이지가 나오지 않고 Spring 서버로 Get요청이 들어갔다..
그래서 Whitelabel Error Page가 나오는데

이때 생각난 것은 저번 프로젝트에서 정적 리소스 접근에 대한 설정을 했던 것이다

해결 방법

WebMvcConfigurer를 구현하는 Config 클래스를 생성하고
addResourceHandlers(registry: ResourceHandlerRegistry) 메서드를 override하여 그 안에 다음 코드를 작성한다
정적 리소스 위치는 각자의 환경에 맞게 설정한다

registry.addResourceHandler("/**")
	.addResourceLocations("classpath:/dist/")
	.resourceChain(true)
	.addResolver(object : PathResourceResolver(){
		override fun getResource(resourcePath: String, location: Resource): Resource? {
        		val requestResource = location.createRelative(resourcePath)
            		return if(requestResource.exists() && requestResource.isReadable) requestResource
            		else ClassPathResource("/dist/index.html")
            	}
        })

좋은 웹페이지 즐겨찾기