티스토리 뷰
728x90
1. WebJars는 jQuery나 Bootstrap같은 static 라이브러리를 다운로드하고 설치하는 번거로움을 제거해 준다.
2. 문제는 인터넷을 찾아보면 사용하는 코드는 있는데 설정하는 방법은 잘 나오지 않는다.
3. 일반적으로 mvn repository에서 찾아 pom.xml에 붙이면 동작하는데, 가끔은 404에러가 뜨고 찾지 못할 때가 있다.
3-1 이전에는 되었는지는 모르겠지만 내가 webjar를 사용하기 시작한 스프링 부트 2에서는 돌아가지가 았았다.
3-2 내가 알기로도 아래 경로는 기본적으로 그냥 돌아가는 것이 맞다. webjars는 META-INF/resources로 되어 있다.
classpath:/static
classpath:/public
classpath:/resources/
classpath:/META-INF/resources
3-3 아마도 jsp에서 사용해서 그런 것일 수도 있는게 jsp는 jar 형식이 불가해 war 형식으로 개발할 수 밖에 없고
3-3-1 webapp이라는 폴더도 classpath에 걸려 있지 않기 때문이다. webapp 폴더기준이라면 문제가 있을 수 있다.
3-3-2 다시 webjar를 찾지 못하도록 코드를 다 빼고 테스트해도 재현되지 않아서 그냥 넘어간다.
4. 가장 간단한 방법은 아래의 webjars-locator를 추가해 주고, 강제로 웹루트기준으로 위치를 지정해 주는 것이다.
<dependency>
<groupId>org.webjars</groupId>
<artifactId>webjars-locator</artifactId>
<version>0.40</version>
</dependency>
package pe.pilseong.steps.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/webjars/**")
.addResourceLocations("/webjars/")
.resourceChain(false);
registry.setOrder(1);
}
}
5. webjars는 webjars.org 홈페이지에서 설정을 찾아 삽입할 수 있다.
6. 웹루트와 클래스패스는 완전히 다른 이야기이다. 아래를 참고한다.
728x90
'Spring > Spring Boot' 카테고리의 다른 글
Spring Boot : Auto Configuration (0) | 2020.07.23 |
---|---|
Spring Boot : CommandLineRunner (0) | 2020.07.10 |
Spring Boot : 내장 서버를 톰캣에서 제티로 변경하기 (0) | 2020.05.27 |
Spring Boot : Security DaoAuthenticationProvider 사용시 @Transactional 처리 (0) | 2020.05.25 |
Spring Boot : RestTemplate + Thymeleaf with Java Config - CRUD 클라이언트 구현 (0) | 2020.05.24 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
- 도커 개발환경 참고
- AWS ARN 구조
- Immuability에 관한 설명
- 자바스크립트 멀티 비동기 함수 호출 참고
- WSDL 참고
- SOAP 컨슈머 참고
- MySql dump 사용법
- AWS Lambda with Addon
- NFC 드라이버 linux 설치
- electron IPC
- mifare classic 강의
- go module 관련 상세한 정보
- C 메모리 찍어보기
- C++ Addon 마이그레이션
- JAX WS Header 관련 stackoverflow
- SOAP Custom Header 설정 참고
- SOAP Custom Header
- SOAP BindingProvider
- dispatcher 사용하여 설정
- vagrant kvm으로 사용하기
- git fork, pull request to the …
- vagrant libvirt bridge network
- python, js의 async, await의 차이
- go JSON struct 생성
- Netflix Kinesis 활용 분석
- docker credential problem
- private subnet에서 outbound IP 확…
- 안드로이드 coroutine
- kotlin with, apply, also 등
- 안드로이드 초기로딩이 안되는 경우
- navigation 데이터 보내기
- 레이스 컨디션 navController
- raylib
TAG
- mapping
- 설정하기
- 스프링부트
- RestTemplate
- Validation
- one-to-one
- form
- 하이버네이트
- jsp
- 로그인
- 설정
- Many-To-Many
- crud
- spring boot
- Spring Security
- 외부파일
- login
- 스프링
- hibernate
- MYSQL
- Angular
- Rest
- Spring
- Security
- 매핑
- one-to-many
- XML
- 자바
- 상속
- WebMvc
250x250