인프런 커뮤니티 질문&답변

Myeongkook Park님의 프로필 이미지
Myeongkook Park

작성한 질문수

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

빌드하고 실행하기

Whitelabel error

해결된 질문

작성

·

901

2

안녕하세요 강사님, 

강의 내용대로 진행을 했을 때 ide에선 정상적으로 화면이 출력되나! 빌드를 해서 실행하면  templates path를 못찾는다는 에러가  발생합니다ㅠㅠ Gradle clean build 도 해봤는데 동일하네요 어떻게 해결할 수 있을까요?

아래는 나오는 오류입니다.

cannot find template location: file:src/main/resources/templates/ (please add some templates or check your thymeleaf configuration)

답변 5

2

김영한님의 프로필 이미지
김영한
지식공유자

어이쿠! 정말로 안되는군요. 두둥

주신 코드에 보면 application.yml이 다음과 같이 변경되어 있네요.

spring:
devtools:
restart:
enabled: true
thymeleaf:
cache: false
prefix: file:src/main/resources/templates/

다음 코드와 같이 file:src 부분을 제거해주시면 정상 동작합니다.

spring:
devtools:
restart:
enabled: true
thymeleaf:
cache: false
# prefix: file:src/main/resources/templates/

스프링이 리소스에 접근할 때 여러가지 방법이 있는데요. jar에 같이 말려있는 리소스에 접근하려면 꼭! 클래스 패스 경로를 사용해야 합니다. classpath:/templates 이런식으로요^^

file:으로 접근하면 jar안에 말려있는 내용이 아닌 자바가 실행된 실제 위치를 기준으로 진짜 파일 경로를 찾게 됩니다.

그래서 build/libs에서 java -jar xxx를 실행하면 다음 경로에 있는 파일을 찾게 됩니다.

build/libs/src/main/resources/templates/hello.html

원래 주신 코드로 실제 이 경로에 파일을 두면 동작합니다^^

추가로 ide안에서 실행할 때는 ide가 내부에서 자바를 실행하는 위치가 딱 저 경로와 맞기 때문에 동작한 것입니다.

도움이 되셨길 바래요^^

1

저도 이 내용 궁금했는데 덕분에 해결했습니다 ㅎㅎ

1

질문 게시판을 두루두루 살펴보면

여러 문제 해결에 대한 팁을 많이 배우네요.

덕분에 많이 공부가 되네용 감사합니당

1

와.. 강사님 어떻게 바로 족집게 처럼 오류를 잡아내시는지!

dev-tools 설치한다고 무턱대고 구글링을 복붙한게 이런 결과를 만들었네요.

질문을 통해서 지식을 더 쌓고 갑니다! 정말 큰 도움 감사합니다!  >_<b

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. myeongkuk01@naver.com님

전체 프로젝트를 압축해서 올려주세요.

Myeongkook Park님의 프로필 이미지
Myeongkook Park

작성한 질문수

질문하기