빠른 시작에 설명 된 표준 파일 구조를 사용하여 작성된 새로운 angular2 프로젝트가 있습니다. API 게이트 웨이를 빌드하고 스프링 부트 호스트 어플리케이션을 사용하려고 시도했지만 생성 된 소스가 생성 된 프로젝트에서/dist 디렉토리를 사용하도록 부트를 구성 할 수 없었습니다. 프로젝트 구조는 다음과 같습니다angular2 스프링 부트 프로젝트 구조
project
|--dist
|--node_modules
|--src
| |--app
| |--assets
| |--main
| | |--java
| | |--resources
| | | |--config
| | |--webapp
| | | |--WEB-INF
나는 여전히 UI에 대한 지속적인 개발을 위해 NPM/웹팩을 사용할 수 있도록 기본/DIST 디렉토리를 사용하고 싶습니다
.
나는과 같이 정적 자원 디렉토리를 구성 시도 :spring.resources.staticLocations: /dist
을하지만이 작동하지 않는 것 같습니다.
나는 dist 디렉토리에 직접 가리 키도록 자원 핸들러를 만든 : 이@Configuration
public class WebMvcConfiguration extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(final ResourceHandlerRegistry registry) {
String currentPath = new File("./").getAbsolutePath();
currentPath = "file:///" + currentPath;
registry.addResourceHandler("/**").addResourceLocations(currentPath + "/dist/");
}
}
이 문제의 일부를 해결하지하지만 지금은 내 루트 URL이 ('/')는 더 이상 index.html을 매핑됩니다.
/dist 프로젝트 디렉토리를 찾기 위해 spring-boot를 구성하는 더 쉽고/좋은 방법이 있습니까? 프로젝트 구조가 변경되어야합니까? 나는이 모든 조각들을 깨끗이 정리하고 싶다. 당신이 index.html을 아래와 같이 넣으면 폴더 SRC/메인/자원
를 기준으로
/META-INF/resources/
/resources/
/static/
/public/
:
클래스 경로에서 디스크를 직접 누르지 말고 위치를 사용해야합니다. (결국 항아리에는 존재하지 않을 것이다!) 나는 보통 JS 파이프 라인을'target/classes'에 출력하도록 설정한다. – chrylis