-
스프링부트-mustache 연동시 404에러 뜰 때.Spring boot 2019. 12. 3. 16:09
1.현상
aws 환경 구축을 완료하고 본격적으로 게시판을 만들어 보려고 박재정님의 유투브 강의를 참고하여 게시판을 만드는 중에 에러가 발생했다.
컨트롤러에 맵핑된 /helloworld2로 url입력시 index.html을 return하는 간단한 구조1234567891011@Controller@AllArgsConstructorpublic class WebController {private PostsService postsService;@GetMapping("/helloworld2")public String welcome2() {return "index";}}cs 뭐 에러 날 게 없다 생각 했는데 404에러가 발생.
index.html 파일을 혹시나 해서 src/main/resources 하위의 templates 폴더와 static 폴더 둘다 넣어줘 봤지만 그래도 에러 발생.
혹시나해서 소스 코드를 수정해 보았다123456789101112@Controller@AllArgsConstructorpublic class WebController {private PostsService postsService;@GetMapping("/helloworld2")public String welcome2() {return "index.html";}}cs 된다..!
그런데 강의에서는 분명 return "index"만 해도 됐었고 경로도 나랑 뭔가 다르다. 해서 구글링 해본결과2.해결 방법
application.yml(application.properties) 파일의 mustache 부분에 아래와 같이 소스를 추가
12345678910spring:profiles:active: local # 기본 환경 선택jpa:properties:hibernate:dialect: org.hibernate.dialect.MySQL5InnoDBDialectmustache:suffix: .htmlprefix: classpath:/static/cs 3.이유
해당 영상 유튜브 박재정님의 댓글을 보니 spring boot의 경우 템플릿 엔진이 바라보는 기본 디렉토리는 templates,
mustache의 suffix 기본은 mustache라고 한다(example.mustache)1234567891011@Controller@AllArgsConstructorpublic class WebController {private PostsService postsService;@GetMapping("/helloworld2")public String welcome2() {return "index";}}cs 해당 코드를 보면 index에 suffix mustache가 붙어 index.mustache에 해당하는 뷰가 리턴 되는 것
하지만 내 프로젝트에 그런 파일은 없으니.. 404 에러가 발생 했던 것이다.
그래서 classpath를 /static/으로 변경해주고 suffix를 html으로 변경 해주면 아주 아주 잘된다'Spring boot' 카테고리의 다른 글
Spring Boot - OAuth2.0 password 방식으로 간단한 인증서버 구현하기 (0) 2020.01.09 JWT (0) 2019.12.26 OAuth2.0 (0) 2019.12.24