728x90
반응형
문제 인식
원래 생각했던 방식은 /src/resource/static 폴더에 빌드를 통해 만들어진 /js, /css index.html 파일을 넣고
http://localhost:8080/ 으로 접속하면 되겠다고 생각했습니다.
하지만 다른 설정이 필요했고, Spring Security도 적용되어 있어서 설정해줘야할 내용이 많았습니다.
설정 내용
config 파일이 모여있는 디렉터리에 WebMvcConfig 클래스를 생성하여 설정을 하였습니다.
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.resource.PathResourceResolver;
import java.io.IOException;
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry){
// addResourceHandlers 메서드를 이용해 어느 경로로 들어왔을때 매핑이 되어줄 것인지를 정의한다.
registry.addResourceHandler("/**/*")
//addResourceLocations 메서드를 이용하여 실제 파일이 있는 경로를 지정해 준다.
.addResourceLocations("classpath:/static/")
.resourceChain(true)
// 요청을 /static/index.html 로 보내서 처리하겠다고 정의합니다.
.addResolver(new PathResourceResolver(){
@Override
protected Resource getResource(String resourcePath, Resource location) throws IOException{
Resource requestResource = location.createRelative(resourcePath);
return requestResource.exists() && requestResource.isReadable()
? requestResource : new ClassPathResource("/static/index.html");
}
});
}
}
baseURL + /login 접근 안되는 문제
http://localhost:8080/ -> http://localhost:8080/login [리다이렉트]
vue.js파일이 baseURL/ 로 접근을 했을 때
baseURL/login으로 접근되도록설정을 해야했습니다.
방법을 찾다가 Controller을 하나 더 만들어서 / 로 들어오는 요청을
/login으로 리다이렉트 시키도록 했습니다.
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@RestController
public class homeController {
@GetMapping("/")
public void goLoginPage(HttpServletResponse response) throws IOException {
String redirect_uri = "http://localhost:8080/login";
response.sendRedirect(redirect_uri);
}
}
728x90
반응형
'Project > Management' 카테고리의 다른 글
[Management] Nginx를 이용한 Vue.js와 Spring 배포 (0) | 2022.11.08 |
---|---|
[Management] API 통신 시 로그 출력하는 필터 추가 (0) | 2022.11.03 |
[Management] AWS 배포 빌드 파일 자동 재시작 스크립트 (0) | 2022.10.27 |
[Management] 날짜 별 로그 생성 (0) | 2022.10.24 |
[Management] DB Error : ORDER BY clause is not in SELECT list (0) | 2022.10.14 |