我有一个应用程序,通过ide或命令行启动时工作得很好:mvn spring-boot:run.但是当我将它打包到jar中时,我无法访问静态资源(未找到404).我不想在资源控制器中存储静态文件,所以每次我需要更改静态文件时都不必重新加载服务器.所以我在我的pom.xml中使用了这个插件:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/classes/static</outputDirectory>
<resources>
<resource>
<directory>src/main/webapp</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我可以看到文件正在两个目录"static"中复制.这是我的资源处理程序配置:
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/");
}
Run Code Online (Sandbox Code Playgroud)
控制器RequestMappings工作正常,问题只与静态资源有关.