초급의 끄적거림

[SpringBoot] 로컬 환경에서 재시작 없이 정적 리소스 리로드 본문

Framework/Spring boot

[SpringBoot] 로컬 환경에서 재시작 없이 정적 리소스 리로드

codingD 2020. 5. 26. 10:35

SpringBoot의 로컬 환경에서 서버 재시작 없이 정적 리소스 리로드 (reload) 하기

  • Spring : webapp 폴더에 정적 리소스 (html/css/js)가 있어서 해당 경로로 톰캣이 작동하기 때문에 실시간 반영 가능
  • SpingBoot : resources 폴더 아래에 정적 리소스를 관리하다보니 갱신을 위해서는 톰캣 재시작이 필요함
    • ≫ path를 예전처럼 webapp으로 지정하는 방법도 있으나 해당 방법은 패키징 하거나 아니면 다른 것들의 path를 일일이 세팅해줘야하는 불편함이 있음
    • ≫ 기존 path를 유지하되 바로 리로드가 되는 devtool를 활용함

1. build.gradle > dependencies 추가

compile('org.springframework.boot:spring-boot-devtools')

2. application.properties 추가

spring.thymeleaf.cache=false
spring.devtools.remote.restart.enabled=true

3. IntelliJ 옵션수정

  - 맥 : command + shift + a /윈도우 : ctrl + shift + a

  - registry 검색

 

  - compiler.automake.allow.when.app.running 체크

 4. compiler 설정

   : File → Settings 옵션에 들어가서 Build project automatically 체크

5. 브라우저 캐시 삭제

  • 4번까지 진행해도 안될 경우, 브라우저에서 동일 url로 호출하는 정적 리소스들을 캐시하고 있기 때문에 안되는 것이라서 브라우저 캐시를 한 번 삭제한다 (추후 삭제 불필요) 
    • 크롬 브라우저 캐시삭제 단축키 : ctrl + shif + delete

6. 확인방법

  : controller에서 정보 수정 후 잠시 기다리면 프로젝트가 재시작되고 크롬페이지도 자동 리프레시가 됨

 

Comments