[이슈해결] template might not exist or might not be accessible by any of the configured Template Resolvers

MinSeong Kang·2022년 9월 28일
0

이슈해결

목록 보기
10/12

프로젝트 마지막 주,
Spring Boot와 Thymeleaf를 통해 모든 기능 개발을 마치고, 뷰 CSS 작업도 다 한 후 배포 및 CI/CD를 적용하려고 하였다.

이슈 발생

EC2 서버를 만들고, 배포 스크립트를 작성하여 리눅스 환경에서 애플리케이션을 빌드하고 실행시키는 것은 성공하였다.
하지만 페이지 이동시, 대부분의 페이지는 오류 없이 노출 가능했지만 몇 개의 페이지는 아래와 같은 오류가 발생했다.

로컬에서 실행했을 때는 아무런 오류가 없었다.

해결 방법

  • 기존 코드
@PreAuthorize("isAuthenticated()")
@GetMapping("/admin/store/new")
public String showCreateForm(Model model) {
    model.addAttribute("createFormDto", new CreateFormDto());

    return "/store/create_form";
}
  • 수정한 코드
@PreAuthorize("isAuthenticated()")
@GetMapping("/admin/store/new")
public String showCreateForm(Model model) {
    model.addAttribute("createFormDto", new CreateFormDto());

    return "store/create_form";
}

다른 컨트롤러와 비교결과 해당 컨트롤러 리턴 경로가 "/ + 뷰 파일" 이었다.
따라서 혹시나 해서 다른 컨트롤러와 똑같이 리턴 경로의 / 를 제거해주니 정상적으로 페이지가 호출되었다.

정확한 이유는 모르겠지만, 짐작하여 말해보면 "/ + 뷰 파일" 형태의 파일을 리눅스는 찾지 못하는 것 같다.
따라서 서버 사이드 렌더링 한 애플리케셔인을 리눅스 환경에 배포할 시, 위와 같이 리턴 경로에 / 를 제거해주어야 한다.

0개의 댓글