Study/spring

[Spring Boot] 스프링부트 이미지 외부경로 설정하기

토기발 2023. 7. 12. 22:38

프로젝트에 상품 리스트 게시판을 만들었는데, 카드 형식으로 썸네일을 보이게 만들었다.

글 작성시 썸네일을 선택하면 메인화면에서 보이는 형식...

 

그리고 컨트롤러에서 enum파일에 있는 IMGPATH (=/img/)경로를 가져와 model.addAttribute로 전달해주었다.

 

그렇게 전달받은 경로+썸네일 파일명으로 로컬에 저장된 파일을 가져오려 했으나........

 

 

정상적으로 이미지가 로컬경로에 저장되고 db에도 파일명이 잘 들어갔지만 게시글 업로드 후 리스트에 들어가보면 이미지가 엑박으로 나옴 -> 서버를 재실행하면 정상적으로 보임

 

이라는 문제가 생겼다...

찾아보니 타임리프에서 외부경로를 사용하지 않고 static폴더 내부에 있는 경로를 사용하면 이미지 변경사항이 바로 반영되지 않는다고 한다.

그럼 외부경로를 매핑하는 법을 알아보자.

 

 

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
//이미지 업로드 외부폴더 설정
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/img/**")
.addResourceLocations("file:///C:\\ddwProjectGit\\DDW\\src\\main\\resources\\static/img/");
}
}

 

 

  • WebMvcConfig 클래스를 생성하고 WebMvcConfigurer 를 상속받는다.
  • @Configuration 어노테이션을 추가한다.
  • addResourceHandler 에는 스프링부트에서 확인할 경로를 넣어준다.
  • addResourceLocations 에는 실제 시스템 폴더 경로를 넣는다. 윈도우의 경우 앞에 file:/// 을 넣어야 한다.

 

 

이제 서버를 재부팅하지 않아도 썸네일이 바로바로 잘 뜬다~!~!

 

 

참고출처

https://blog.naver.com/didrh31/222295575065

https://applepick.tistory.com/148