我不能让我的Spring-boot项目提供静态内容。
我在src/main/resources
下放置了一个名为static
的文件夹。在它里面有一个名为images
的文件夹。当我打包并运行应用程序时,它找不到我放在该文件夹中的图像。
我尝试将静态文件放在public
、resources
和META-INF/resources
中,但都不起作用。
如果我jar -tvf app.jar,我可以看到文件在jar中的右文件夹中:例如/static/images/head.png
,但是调用:http://localhost:8080/images/head.png
,我得到的只是一个404
你知道为什么spring-boot找不到这个吗?(我使用的是1.1.4BTW)
发布于 2014-09-17 05:45:54
与spring-boot声明的不同,为了让我的spring-boot jar提供内容:我必须通过这个config类专门注册我的src/main/resources/static内容:
@Configuration
public class StaticResourceConfiguration implements WebMvcConfigurer {
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
"classpath:/META-INF/resources/", "classpath:/resources/",
"classpath:/static/", "classpath:/public/" };
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**")
.addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
}
}
发布于 2014-09-29 02:39:39
我遇到了类似的问题,结果证明简单的解决方案是让我的配置类扩展WebMvcAutoConfiguration
@Configuration
@EnableWebMvc
@ComponentScan
public class ServerConfiguration extends WebMvcAutoConfiguration{
}
我不需要任何其他代码来支持我的静态内容,但是,我确实在src/main/webapp
下放置了一个名为public
的目录,并将maven配置为指向src/main/webapp
作为资源目录。这意味着public
被复制到target/classes
中,因此在运行时位于类路径上,以供spring-boot/tomcat查找。
发布于 2015-02-23 21:03:25
查找映射到"/“或未映射路径的控制器。
我有一个这样的问题,得到了405个错误,几天来一直在努力地撞我的头。问题原来是我忘了用@RequestMapping
注释来注释的@RestController
注释控制器。我猜这个映射路径缺省为"/“,并且阻塞了静态内容资源映射。
https://stackoverflow.com/questions/24661289
复制相似问题