Есть ли способ серверных статических файлов в Java Webflux?

Привет всем, я ищу сейчас целый день, и я не нашел решения. Я мог бы без проблем размещать статический файл в приложении 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.

Надеюсь, кто-нибудь знает, что делать.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
14
1

Ответы 1

Я думаю, что вам не хватает в основном того, чтобы сказать, какой тип (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/"));
    }
}

Другие вопросы по теме