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

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

그리고 컨트롤러에서 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
'Study > spring' 카테고리의 다른 글
[Spring Data JPA] Spring Data JPA의 구조와 흐름 (0) | 2023.06.29 |
---|---|
[Spring] No identifier specified for entity 에러 (0) | 2023.06.27 |
[JPA] Error: 1364: Field 'id' doesn't have a default value 오류 해결 (0) | 2023.06.20 |
스프링 핵심 원리 강의 정리 1 - 객체지향 (0) | 2022.12.23 |
[SpringBoot] 스프링부트 프로젝트 만들기 (0) | 2022.11.29 |