我有一个新的angular2项目,它使用了快速入门中描述的标准文件结构进行构建。我正在尝试构建一个API网关,并让spring-boot托管我的应用程序,但是我还没有能够配置boot使用我的项目中生成源代码的/dist目录。项目结构如下:
project
|--dist
|--node_modules
|--src
| |--app
| |--assets
| |--main
| | |--java
| | |--resources
| | | |--config
| | |--webapp
| | | |--WEB-INF
我希望使用默认的/dist目录,这样我就可以在UI上进行持续开发,仍然可以使用npm/webpack。
我尝试进行如下静态资源目录配置:
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。
有没有更简单/更好的方法来配置spring-boot以查找/dist项目目录?我的项目结构应该改变吗?我真的很想让所有这些部分干净地一起工作。