5 回答
TA贡献1848条经验 获得超6个赞
Spring Boot Documentation中提到了这一点,在 spring mvc 部分下您可以使用 WebMvcConfigurer,但不需要执行 @EnableWebMvc
所以你应该删除@EnableWebMvc注释!
//@EnableWebMvc Remove this
@RestController
public class MyRestController implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static")
.addResourceLocations("file:/static");
}
@PostMapping(path = "/hello")
public MyResponse hello(@RequestBody() MyBody body,
HttpServletRequest request) {
return new MyResponse("Hello " + request.getRemoteAddr());
}
}
TA贡献1846条经验 获得超7个赞
我认为您缺少资源文件夹,您的文件夹结构应该如下所示
MyApp/
src/
main/
resources/
static/index.html
static/img/image.png
TA贡献1779条经验 获得超6个赞
静态资源通常位于 /src/main/resources 下以进入 maven 标准项目布局中的类路径,Spring Boot 应该为 /static (/src/main/resources/static) 下的所有文件提供服务,而无需任何应用程序配置addResourceHandler()
。
https://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html
TA贡献2021条经验 获得超8个赞
我有一个博客应用程序,它在 static/ 之外的文件夹中接收上传的图像。
MyApp/
src/
main/
resources/
static/
css/
javascript/
images/
blog/
1-blogpost/ (here are the uploaded images)
2-blogpost/ (here are the uploaded images)
(... and so on)
所以我用 Spring Boot 在 Kotlin 中做了这个:
@Configuration
class WebConfiguration : WebMvcConfigurer {
private val logger = loggerFactory.getLogger(WebConfiguration::class.java)
override fun addResourceHandlers(registry: ResourceHandlerRegistry) {
logger.info("####### Entering ResourceHandlers configurations #######")
registry.addResourceHandler("/**").addResourceLocations("classpath:/static/")
registry.addResourceHandler("/blog/**").addResourceLocations("file:src/main/resources/blog/")
}
@Bean
fun restTemplate() : RestTemplate {
return RestTemplate()
}
}
添加回答
举报