我试图在弹出启动项目上设置一个新的资源位置,该项目启用了实时重新加载,但没有启动应用程序重启。我能够添加其他资源,但新目录中所做的任何更改都会导致应用程序重新启动。
documentation就此而言似乎很轻松。我必须误解一些东西。
我的布局如下:
- src
- main
- java
- resources
- static
- web
- dist
我的应用程序类看起来像这样:
@Bean
WebMvcConfigurer configurer () {
return new WebMvcConfigurerAdapter() {
@Override
public void addResourceHandlers (ResourceHandlerRegistry registry) {
registry.addResourceHandler("/dist/**")
.addResourceLocations(""file:web/dist/"")
.setCachePeriod(0);
}
};
}
public static void main(String[] args)
{
SpringApplication app = new SpringApplication(Application.class);
app.addListeners(new PropertyLogger());
Properties properties = new Properties();
properties.setProperty("spring.devtools.restart.additional-paths", "web/dist/");
properties.setProperty("spring.devtools.restart.additional-exclude", "/dist/**");
app.setDefaultProperties(properties);
app.run(args);
}
我已经阅读了几个类似的问题,这似乎是我能做的最好的。是否可以在没有完整应用程序重启的情况下启用dist上的实时重新加载?
顺便说一句,我的IDE是IntelliJ。我开始怀疑IntelliJ是否需要排除dist目录。如果是这样的话,我会跟进。
答案 0 :(得分:0)
我已经把它打死了,终于找到了一个有效的解决方案。
Properties properties = new Properties();
properties.setProperty("spring.devtools.restart.additional-paths", "web/");
properties.setProperty("spring.devtools.restart.additional-exclude", "dist/**");
app.setDefaultProperties(properties);
将Web目录定义为附加路径以及用于其他排除的模式可以解决问题。
除非有支持我的结论的支持,否则我不会将此标记为已被接受。