일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- IntelliJ
- MySQL
- Gradle
- ReactJS
- tool
- ubuntu
- javascript
- Design Patterns
- Spring
- Spring Boot
- redis
- 맛집
- java
- elasticsearch
- linux
- php
- jsp
- laravel
- springboot
- devops
- Web Server
- jenkins
- AWS
- JVM
- 요리
- Spring Batch
- db
- Oracle
- Git
- it
- Today
- Total
아무거나
SpringBoot에서 정적 리소스 실시간 반영 devtools 본문
웹 개발을 하다 보면 정적 리소스에 대해 변경이 될 때마다 계속하여 서버 restart 하는 경우가 비일비재하다.
왜냐하면 spring은 spring boot와 다르게 webapp 폴더에 정적 리소스가(html/css/js) 있어서 해당 경로로 tomcat이 동작하기 때문에 실시간 반영이 되지만 spring boot는 resources 폴더 아래에 정적 리소스를 관리하다 보니 갱신을 하기 위해서는 tomcat을 restart해줘야 한다.
즉, javascript와 같은 언어를 중심으로 개발을 할 때 새로고침만 하면 바로 갱신이 되게끔 해주고 싶으면 spring boot의 정적 리소스의 path를 예전처럼 webapp으로 지정하는 방법도 있지만 해당 방법은 패키징하거나 아니면 다른 것들의 path를 일일히 세팅해줘야하는 불편함이 있다. 그래서 spring boot의 기존 path를 유지하되 바로 reload가 되는 방법을 찾아보니 devtools을 알게 되었다.
버전 제약은 spring boot 1.3 버전부터 지원하며 미만의 버전에서는 spring loaded를 찾아보면 된다.
필자의 os는 macos기준으로 작성하였다.
1. gradle dependencies 추가
compile("org.springframework.boot:spring-boot-devtools")
2. application.yml 에 설정 추가
spring:
profiles: local
.....
devtools:
livereload:
enabled: true
3. intellij 옵션 수정
- command + shift + a 를 누르고 registry를 검색하고 실행하면 여러 옵션이 나온다. 그 중compiler.automake.allow.when.app.running를 체크하자.
4. preferences 에서 compiler로 검색하여 build project automatically 옵션을 체크하자.
5. 4번까지 진행 후 서버 재시작을 해보자. (혹시 전부해도 반영이 안된다면 브라우저가 캐시하고 있을수도 있으므로 캐시를 제거하고 다시 확인해보자)
* 그래도 안되면 IDE위쪽에 아래로 표시된 화살표를 클릭하자.( command + f9 )
'IT > 개발관련툴' 카테고리의 다른 글
웹에서 순서도 그리는 도구 draw.io (2) | 2018.10.18 |
---|---|
[Atom] VueJS 개발환경 세팅 (0) | 2018.09.28 |
확장 Putty 다운 (0) | 2018.06.13 |
Super Putty로 AWS EC2 인스턴스 SSH 접속 (0) | 2018.06.13 |
Super Putty 설치 및 사용기본 (0) | 2018.06.08 |