jsp 파일이 아닌 이미지 파일(png, jpg, etc.)을 웹으로 띄우기 위해 해당 파일을 실행시켜보면 오류가 발생하는 것을 확인할 수 있다.
그 이유는 Dispatcher가 정적인 파일에 대한 요청을 전부 막고 있기 때문이다.
그렇다면 이미지나 css 등과 같은 정적인 파일을 출력하기 위해서는 어떻게 해야할까?
설정을 위해 dispatcher-servlet.xml 파일에 코드를 추가해주어야 한다.
우선 mvc를 지원하는 처리기를 추가하기 위해 다음과 같이 코드를 추가한다.
이로써 태그로 사용할 수 있는 요소가 늘어나게 되었다.
이제 다음과 같은 코드를 추가해준다.
위 코드의 의미는 mapping 속성에 지정된 url을 사용자가 요청하게 되면 location 속성에 지정된 경로에서 파일을 찾아 출력하라는 의미이다. 여기서 mapping 속성에 지정된 '/resource/**'은 /resource/images/.., /resource/aa/... 등 모든 하위 폴더를 포함한다는 것을 의미한다.
이후 'resource'라는 이름의 파일을 webapp 폴더 안에 생성하고 이미지 파일을 resource 폴더로 옮긴 뒤, 실행해보면 정상적으로 출력되는 것을 확인할 수 있다.
하지만 위처럼 할 경우 jsp 파일에서 이미지를 요청하는 모든 부분에 '/resource/' 구문을 추가로 붙여주는 작업을 수행해야 하기 때문에 상당히 귀찮아진다. 따라서 일반적으로는 다음과 같이 설정한다.
resource 폴더는 지워주고 기존 html 파일의 이름을 'static'으로 바꾸어 준다.
이제 우리는 이미지나 css 등과 같은 정적인 파일들은 static 폴더에 따로 보관하여 관리할 수 있으며 동적인 파일의 경우 index 파일처럼 바깥에서 관리하게 될 것이다.
결과를 확인하기 위해 index 파일을 실행시키면 모든 정적 파일들이 정상적으로 출력되면서 아래와 같은 페이지가 나타나게 된다.
'🍃 Spring, Spring Boot > 스프링 프레임워크 기초' 카테고리의 다른 글
[Java / Spring] 15. Tiles 설정하기 (0) | 2022.04.21 |
---|---|
[Java / Spring] 14. 컨트롤러 추가 및 페이지 모듈 분리 (0) | 2022.04.21 |
[Java / Spring] 12. View 페이지를 위한 위치 (0) | 2022.04.20 |
[Java / Spring] 11. Dispatcher Servlet 라이브러리 설정하기 (0) | 2022.04.18 |
[Java / Spring] 10. 메이븐을 이용한 기본 웹 프로젝트 생성하기 (0) | 2022.04.17 |