Servlet, Spring 코드와 정적파일을 작성하다보면 정적파일에 .css 파일적용이 안되거나,
경로가 잘못되어 해당파일을 불러 오기가 힘들다.
이 때문에 경로에 대한 정의를 복습하고 에러를 단축시키려고 한다.
ex) http://www.google.com, /Users/mac/Downloads/untitled.jpg 등을 모두 절대 경로라고 지칭한다.
상대경로를 풀어서 보면 '현재 위치한 곳을 기준' 으로 해서 '해당 파일의 위치'이다.
즉, (Web이라고 기준하에) html 파일이 위치한 폴더를 기준으로 상대적인 경로라는 것.
ex) /Users/mac/Project 라는 폴더 밑에 Java라는 폴더와 Resources 라는 폴더가 있다고 가정하고,
Java라는 폴더안에 MemberController.java 파일이 위치한다고 가정하고
현재 내가 Resources라는 폴더에 위치한다면,
Java폴더 안에 MemberController.java파일을 가져오기(이용하기) 위해서는 Resources 라는 폴더를 기준으로 계산을 한다.
따라서 ../Java/MemberController.java이라고 하여 MemberController.java를 가져오기(이용하기) 가능하다
(각자 다른 파일에 있다면 상응 되는 파일까지 적어주고 상위 폴더를 가리키는 ../ 형식으로 작성한다.)
/ : 루트
./ : 현재 위치
../ : 현재 위치의 상단 폴더
ex) index.php가 C:\index\a에 위치한다면,
ex) MemberController.java가 Users/mac/Project에 위치한다면,
여기서 / 는 Users:
./ 는 Project
../ 는 mac라는 것.
3가지를 간단히 정리하자면,
1 '/' -> 가장 최상의 디렉토리로 이동한다.(Web root)
2 './' -> 파일이 현재 디렉토리를 의미한다.
3 '../' -> 상위 디렉토리로 이동한다.
만약 두단계 상위 디렉토리로 이동하려면
'../../' 이렇게 사용하면 된다.
Spring 경로 에러
JSP를 사용하다가 thymeleaf로 전환 후 나타난 에러다.
에러의 이유 : View 파일경로의 잘못된 지정으로 인한 에러라고 생각해서 맵핑 정보도 수 없이 바꿔봤지만 해결이 되지않았다.
결론은... application.properties 파일의 thymeleaf 설정값의 경로를 잘못 입력한 탓이였다..
thymeleaf의 설정 정보들을 주석 처리해주니 잘 돌아간다.
References (참고 자료)