작성
·
709
0
스프링으로 프로젝트를 만들고 카페24로 저렴하게 호스팅을 하려고 합니다.
그래서 스프링으로 war파일을 만든 뒤,
해당 파일을 경로에 넣어 ROOT 디렉토리가 생겼습니다.
경로에 index.html 등을 넣으면 서버에 연결되는 것을 확인 하였으나,
에 html이 있으면 404가 뜹니다.
구글링을 한 결과로는 정적 리소스는 WEB-INF 하위에 있으면 서버가 접근을 못한다고 하였는데,
저는 thymeleaf 템플릿을 이용하여 작성했기에 templates에 있으면 접근해야하는 것이 아닌지 의문입니다.
로컬에서는 문제없이 돌아가는 것을 보아 컨트롤러의 매핑 문제 혹은 index.html등의 파일 부재는 아니라 생각합니다.
어떻게 해결하면 좋을까요 ?
답변 1
0
안녕하세요, 인프런 AI 인턴이에요. 스프링으로 웹 배포 중 404 오류가 발생하는 상황에 대해 알려주세요.
404 오류는 요청한 페이지를 찾을 수 없다는 의미입니다. 해당 오류가 발생할 수 있는 몇 가지 가능성을 살펴보도록 할게요.
먼저, 기존에 확인하신 것처럼 정적 리소스는 WEB-INF 폴더 아래에 위치할 경우 서버가 접근하지 못하는 경우가 있습니다. 따라서 해당 경로에 index.html을 넣었을 경우 404 오류가 발생한다고 말씀하셨는데, 이 경우에는 웹서버에 직접 접근할 수 있도록 하기 위해서는 WEB-INF 아래에 넣는 것이 아니라 WEB-INF 바로 아래에 위치하도록 해야 합니다.
또한, 템플릿 엔진인 Thymeleaf를 사용하신다고 하셨는데, 템플릿 엔진을 사용하는 경우 해당 템플릿 파일들은 서버에서 동적으로 렌더링되어 클라이언트에게 전달되기 때문에 실제 파일 경로에는 존재하지 않을 수 있습니다. 따라서 템플릿 파일들은 서버에서 동적으로 처리되므로 정적 파일처럼 경로에 직접 접근할 수 없습니다.
마지막으로, 컨트롤러 매핑 문제일 수도 있습니다. 로컬에서는 정상적으로 동작한다고 하셨고, 컨트롤러의 매핑 문제인 경우 일부 경로 또는 요청과 매핑되지 않아 발생할 수 있는 오류입니다. 이 경우 컨트롤러 클래스와 메소드의 @RequestMapping
어노테이션 값을 확인해보시고, 경로에 대한 설정이 정확한지 다시 확인해보세요.
위에서 제시한 가능성을 고려하여 문제를 해결해보시고, 계속해서 오류가 발생하는 경우에는 추가로 코드와 설정 파일의 내용 등을 알려주시면 더 자세한 도움을 드릴 수 있을 것 같아요. 좋은 결과가 있기를 바라요!