관리 메뉴

공부한것들을 정리하는 블로그 입니다.

Spring Boot에서 정적 요소(Js,html...) 변동 시 자동 반영 처리하기(with devtools, IntelliJ) 본문

Spring/공부

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를 두번 입력하여 검색 창에서 찾습니다.

 

하단의   Registry 항목


그리고
 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/

반응형
Comments