在打包到jar后,Spring启动应用程序不提供静态资源

我有一个应用程序,通过ide或命令行启动时工作得很好:mvn spring-boot:run。 但是当我将它打包到jar中时,我无法访问静态资源(未找到404)。 我不想将静态文件存储在资源漏洞中,所以每次我需要更改静态文件时都不必重新加载服务器。 所以我在我的pom.xml中使用了这个插件:

 maven-resources-plugin 2.6   copy-resources validate  copy-resources   ${basedir}/target/classes/static   src/main/webapp true       

我可以看到文件正在两个目录“static”中复制。 这是我的资源处理程序配置:

  @Configuration @EnableWebMvc public class WebMvcConfig extends WebMvcConfigurerAdapter { @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**").addResourceLocations("/"); } 

控制器RequestMappings工作正常,问题只与静态资源有关。

您应提供多个资源位置以进行解析:

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

对我来说,当我将@EnableWebMvc注释添加到WebMvcConfigurerAdapter类时,静态资源停止提供。 没有它,它工作正常。