IntelliJ) springboot + mariaDB + Thymeleaf 로 게시판 만들기 - 2. template 적용
2. template 다운 받기
https://startbootstrap.com/themes 에서 무료 템플릿을 다운받아 진행하였음
📌 템플릿 프로젝트에 넣기
static
디렉토리에 하위 디렉토리로 bootstrap
이라는 디렉토리를 생성해 줌
css
, img
, js
, scss
, vendor
폴더를 방금 만든 bootstrap
디렉토리로 이동시켜줌
index.html 파일은 template 파일 아래로 이동시켜줌
다 해주면 위와 같은 구조가 됨
📌 정적 리소스 매핑
파일을 프로젝트에 포함시켰다고 해서 무조건 사용할 수 있는 것이 아니 었음
리소스 위치와 리소스와 매핑될 url을 등록해주는 addResourceHandlers
를 사용해야 했음
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
}
위와 같은 코드를 config
디렉토리 안에 MvcConfig.java 라는 이름으로 클래스를 생성하여 작성해 주었음
해당 클래스는
WebMvcConfigurerAdapter
를 상속받고 있는@Configuration
클래스임
📌 View 의 공통 부분 관리하기
view를 보다보면 공통 부분이 존재함. (footer, header, sidebar 등) 이를 계속해서 복붙할 수 없으니 한개의 파일로 두고 불러와서 사용하는 형식으로 만들 것임.
templates
디렉토리에 하위 디렉토리로 fragments
라는 디렉토리를 생성해 줌
head
, top
, sidebar
, footer
, script
라는 이름으로 html 파일을 fragments
디렉토리에 만들어 줌
index.html
파일에서 각 부분(head, top 등) 의 코드를 복사하여 방금 만들었던 html 파일에 각각 붙여넣어 줌
<th:block th:fragment="head">
<!-- index.html에서 <head></head> 부분 코드 -->
</th:block>
위와 같은 형식으로 붙여넣어주면 head라는 이름으로 fragment를 지정해주겠다는 의미임
이를 page에서 사용할 때 다음과 같이 사용하면 해당 이름의 fragment의 내용을 여기에 위치시키겠다는 의미임
<!-- 공통 헤드-->
<th:block th:replace="fragments/head :: head"></th:block>
Thymeleaf를 사용하므로 각 html 파일
<html></html>
에 xmlns:th="http://www.thymeleaf.org" 를 포함시켜 주어야 함
이 방식 외에도 thymeleaf layout dialect를 사용하여 기본 레이아웃 파일을 하나 선언하여 공통요소를 관리할 수 있다.
기본 레이아웃을 사용할 html 파일에서 다음과 같이 작성하여 사용할 수 있다.<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorator="layout/default">
📌 경로 수정하기
파일 내에 작성되어 있는 경로를 프로젝트 구조에 맞게 바꿔줌
<link href="vendor/fontawesome-free/css/all.min.css" rel="stylesheet" type="text/css">
<link th:href="@{/static/bootstrap/vendor/fontawesome-free/css/all.min.css}" rel="stylesheet" type="text/css" />
Thymeleaf 형식으로 바꿔 작성해주고, 경로 또한
/static/bootstrap/
을 추가하여 바꿔주었음
끝 😃
img 경로 수정까지 해주면 img는 제대로 나올 것임
위 사진은 contents 요소를 모두 지운 상태여서 비어있음
Author And Source
이 문제에 관하여(IntelliJ) springboot + mariaDB + Thymeleaf 로 게시판 만들기 - 2. template 적용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yejin25/IntelliJ-springboot-mariaDB-Thymeleaf-로-게시판-만들기-2.-template-적용저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)