공부한것들을 정리하는 블로그 입니다.
Spring Boot에서 정적 요소(Js,html...) 변동 시 자동 반영 처리하기(with devtools, IntelliJ) 본문
Spring Boot에서 정적 요소(Js,html...) 변동 시 자동 반영 처리하기(with devtools, IntelliJ)
호 두 2019. 11. 19. 13:24
SpringBoot에서 정적 요소 변경 했는데..
- 개발을 진행하는 도중 Font-end단 작업을 해야 해서 html 요소를 변경하고, 브라우저를 새로고침하였지만 변경이 되지 않았습니다.
- 그래서 이 부분을 찾아본 결과 Thymeleaf같은 템플릿 엔진을 사용할 경우 정적 리소스 갱신을 위해 서버를 재시작 해야 하는 것이었습니다.
- Spring을 이용하여 개발을 할 경우 webapp 디렉토리에서 정적 리소스를 담당하기에 바로바로 화면 갱신을 하여 확인할 수 있었습니다.
- 그러나 SpringBoot에서는 resources 디렉토리에서 정적 리소스를 관리하기에 변경을 확인하기 위해서는 톰캣같은 WAS를 재시작 해야 합니다.
위와 같이 정적 리소스 변경을 확인하기 위해서 매번 서버를 재시작하는 것은 너무 반복적이고 귀찮은 작업이었습니다.
그래서 이런 반복적인 작업을 해결하기 위해서 찾아본 결과 Devtools라는 것을 활용하는 방법을 찾게 되었습니다.
그럼 실시간으로 정적 요소를 반영하는 방법에 대해서 알아보도록 하겠습니다.
프로젝트 진행 환경
현재 프로젝트를 진행하는 환경은 다음과 같습니다.
- Spring Boot 1.5.8.RELEASE
- Thymeleaf 2.1.5.RELEASE
- Gradle
- IDE : Intelli J
- Mac Os
설정 방법
Devtools를 설정 및 적용하는 방법은 다음과 같습니다.
1. build.gradle 의존성 추가
dependencies {
...
compile('org.springframework.boot:spring-boot-devtools') //devtools
}
위와 같은 의존성을 build.gradle에 추가해줍니다.
2. application 설정파일(.yml or properties) 수정
application 설정파일에서 아래의 내용을 작성합니다. (yml, thymeleaf 사용 예시)
spring:
devtools:
livereload:
enabled: true
thymeleaf:
cache: false
thymeleaf의 경우 자신이 사용하는 템플릿 엔진의 캐시를 비활성화 하면 됩니다.
3. IntelliJ 설정 변경
Action 항목 중 Registry의 내용을 변경해야 합니다.
command + shift + A를 입력하면 아래와 같은 화면이 뜹니다. (Window의 경우 Command -> ctrl)
또는 shift를 두번 입력하여 검색 창에서 찾습니다.
그리고 compiler.automake.allow.when.app.running 항목의 체크박스를 체크합니다.
이후 IntelliJ에서 환경설정을 열고 다음의 경로에서 설정을 추가해줍니다.
Build, Excution, Deployment -> Build project automatically 항목을 체크
Build project automatically 부분은 IntelliJ 버전에 따라 Make project automatically로 나타나기도 합니다.
4. End…
서버를 재시작하고 확인해봅니다.
정리
만약 위와 같이 하였는데도 되지 않는다면, 브라우저에 캐시가 남아있어서 그런 문제인데,
이 경우 잔존한 캐시를 한번 비워주고 시도하면 정상적으로 출력이 될 것입니다.
위의 내용대로 진행해도 안될 경우 IntelliJ에서 아래와 같이 작업을 합니다.
Spring Boot를 실행 설정을 하는 곳Edit Configuration으로 이동합니다. (아래 사진)
그리고 아래 사진과 같이 Running Application Update Policies 항목에서 두 가지 옵션(On Update, On frame..)의 옵션을 다음의 값으로 바꿔줍니다.
Update classes and resources
그리고 IntelliJ를 재부팅 해주고 다시 확인해봅니다.
출처 : https://elfinlas.github.io/2017/12/25/springbootstaticres/
'Spring > 공부' 카테고리의 다른 글
토비의스프링3.1 1장. 오브젝트와 의존관계 (0) | 2022.07.12 |
---|---|
스프링과 싱글톤 컨테이너 (0) | 2022.06.16 |
객체 지향 설계와 스프링 (0) | 2022.04.24 |
Spring에서 @RequestParam과 @PathVariable (0) | 2019.12.19 |
스프링 가이드 참고 사이트 모음 (0) | 2019.08.27 |
스프링부트 애노테이션 정리, annotation 간단 요약 (자세한 내용은 검색해서 확인하고 용도 파악하기) (0) | 2018.11.10 |
스프링 인터셉터와 필터 (0) | 2017.08.12 |
토비의 스프링 3.1 (0) | 2017.05.14 |