Привет всем, я ищу сейчас целый день, и я не нашел решения. Я мог бы без проблем размещать статический файл в приложении mvc spring, но с webflux я не нашел способа, как я могу их обслуживать.
Я вставил в ресурс папку с именем static, а там простой HTML-файл.
Моя конфигурация выглядит так:
@Configuration
@EnableWebFlux
@CrossOrigin(origins = "*", allowedHeaders = "*")
public class WebConfig implements WebFluxConfigurer {
@Bean
public RouterFunction<ServerResponse> route() {
return RouterFunctions.resources("/", new ClassPathResource("static/"));
}
Когда я запускаю приложение и перехожу на localhost, я только что получил ответ 404.
Я тоже пробую с добавлением:
spring.webflux.static-path-pattern = /**
spring.web.resources.static-locations = classpath:/static/
в application.properties, но я все равно получил 404 not found.
Даже когда я добавил Thymeleaf в свои зависимости, я все равно получаю 404.
Надеюсь, кто-нибудь знает, что делать.




Я думаю, что вам не хватает в основном того, чтобы сказать, какой тип (GET) запроса вы хотите обслуживать данные.
Вот старый фрагмент кода, который я обнаружил, когда я обслуживал приложение для реагирования из папки public в папке resource.
При выполнении GET против /* мы получаем index.html. Если индекс содержит javascript, который возвращает запросы, они перехватываются вторым маршрутизатором, обслуживая все, что находится в папке public.
@Configuration
public class HtmlRoutes {
@Bean
public RouterFunction<ServerResponse> htmlRouter(@Value("classpath:/public/index.html") Resource html) {
return route(GET("/*"), request -> ok()
.contentType(MediaType.TEXT_HTML)
.bodyValue(html)
);
}
@Bean
public RouterFunction<ServerResponse> imgRouter() {
return RouterFunctions
.resources("/**", new ClassPathResource("public/"));
}
}