Как обслуживать статические ресурсы, используя webflux, но с поддержкой CACHE - PullRequest
0 голосов
/ 01 ноября 2019

Я пытался заставить Spring Cloud Gateway обслуживать статический HTML-контент из разных каталогов по разным путям, потому что он имеет несколько приложений. Благодаря сообществу stackoverflow вначале все было просто, я сделал несколько хороших конфигураций и т. Д. И просто зарегистрировал функции RouterFunctions в весеннем контексте на столько, сколько мне нужно:

@Bean
RouterFunction<ServerResponse> staticResourceRouter(){
    return RouterFunctions.resources("/an-application/**", new FileSystemResource("/something/blablastatic/"));
}

Это работает как чудо, и я мог бы заменить некоторыедругие системы обслуживания статического контента, которые шлюз перенаправлял, были устаревшими.

Однако возникла проблема - все, что я смог найти в Интернете, дает тот же путь, что и выше, который не использует кэширование ресурсов на стороне клиента (заголовки управления кэшем / Last-Modified и т. Д.). Я не очень хорошо разбираюсь в webflux, и я не уверен, как настроить это вручную (в коде, а не в свойствах весенней загрузки), сконфигурированными функциями маршрутизатора, чтобы сервер отвечал 304 при использовании кэша браузера. Буду благодарен за помощь.

1 Ответ

2 голосов
/ 02 ноября 2019

Вариант функциональной конечной точки Spring WebFlux предназначен для того, чтобы облегчить задачу и дать вам больше контроля над тем, что происходит. Ванильное приложение WebFlux настроило бы обработчик ресурсов со многими параметрами (управление кэшем, преобразование и т. Д.) , но я полагаю, что в этом случае это не может быть предпочтительным способом для Spring Cloud Gateway.

Я думаю, что эта функция не поддерживается, и это может быть хорошим кандидатом на новую проблему (если ее еще нет). Обратите внимание, что эта функция может выходить за рамки Spring Spring Gateway, поскольку обычно для разрешения / преобразования ресурсов часто требуется доступ к локальной файловой системе и локальные знания приложения, обслуживающего этот ресурс, что противоречит прокси-запросам на эти ресурсы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...