해결된 질문
20.08.25 09:20 작성
·
867
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
2020. 08. 25. 21:30
어이쿠! 정말로 안되는군요. 두둥
주신 코드에 보면 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
0