在打包到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
类时,静态资源停止提供。 没有它,它工作正常。