2016-07-01 3 views
1

다양한 제한된 컨텍스트를 처리하기 위해 여러 Maven 모듈로 솔루션을 개발 중입니다.스프링 부트에 의해 jar 파일 내의 정적 리소스를 제공하십시오.

스프링 부트로 인해 각 모듈은 자신의 나머지 API와 @SpringBootApplication으로 주석 처리 된 클래스를 사용하여 하나의 메이븐 모듈에서 호스팅되는 모든 모듈을 노출합니다. 단순화 된 프로젝트 구조가 은 다음과 같습니다 : 레이아웃, 정적 자원 한편, HTML 페이지를 유지 한 장소 : 복합 UI에 직면 할 때 나는 같은 패턴을 사용하려고했습니다

parent 
|-- pom.xml 
|-- ... 
|-- host 
    |-- Application.java  
    |-- resources 
    |-- index.html 
|-- driver 
    |-- api  
    |-- resources 
    |-- register.html 
|-- notify 
    |-- ... 
|-- passenger 
    |-- ... 

그것의 maven 모듈에 보관 된 각각의 제한된 컨텍스트에 속한다.

문제는 내가 봄 부팅 설명서에서 찾은 것처럼 다른 jar 파일의 정적 리소스를 제공 할 방법이 없다는 것입니다.

이 기능을 사용하는 데 필요한 해결책이 있습니까? 아니면 여기에 아키텍처 실수가 있습니까? 또는 봄 바깥 쪽 (예 : 오버레이)이 해결책입니까?

+0

를 참조 확장 "정적" 그러면 JAR 파일에서 정적 자원으로 제공되어야합니다. 문제가 있으면 오류를 지정하십시오. – dunni

+0

'host'모듈 아래의 모든 정적 파일을 index.html이 좋아한다는 뜻입니까? 그들은 이미 올바른 길을 가고 있으며 봄까지 봉사하고 있습니다. 하지만 다른 maven 모듈에 있고 별도의 JAR 파일로 패키지 된 register.html은 어떻습니까? – nsafari

+1

"register.html"파일이 JAR의 "static"폴더에 있으면, 스프링에 의해 정적 리소스로 인식되어 제공됩니다. 작동하지 않으면 구성 및 로그 파일에 대한 자세한 정보를 게시 할 수 있습니다. – dunni

답변

3

은 "SRC/메인/자원/정적"그들이 폴더에 포장해야 당신이 경로에 정적 파일을 넣으면 WebMvcConfigurerAdapter 및 오버라이드 (override) addResourceHandlers이

@Override 
public void addResourceHandlers(ResourceHandlerRegistry registry) { 
    registry.addResourceHandler("/static/**") 
      .addResourceLocations("classpath:/static/"); 
} 

spring-boot-app-does-not-serve-static-resources-after-packaging-into-jar