Предоставлять статические данные webroot / index.html по несуществующим маршрутам на веб-маршрутизаторе Vert.x - PullRequest
0 голосов
/ 03 июня 2018

Сценарий:

  • Я поместил свои статические данные в папку webroot / *, и сервер предоставляет эти данные по запросу.
  • У меня многомаршруты для API маршрутизации.

Код маршрутизатора:

Router router = Router.router(vertx);
router.route().handler(BodyHandler.create());

router.route("/api/login/account").handler((RoutingContext ctx) -> {
  // Handler is here
});
router.route("/api/currentUser").handler(ctx -> {
  // Handler is here
});
router.route().handler(StaticHandler.create());
router.route("/*").hanler(StaticHandler.create("webroot/index.html"));

Папка webroot имеет следующие файлы:

  • index.css
  • index.html
  • image / image.jpg

Проблема:

  • Нужно предоставить файл webroot / index.html при несоответствии маршрутизации (не работает; возвращает значение ** 'Ресурс не найден' ) **: если я запрашиваю данные для / xyz / abc, тогдаwebroot / index.html должен быть обслужен.
  • Нужно обслуживать другие статические файлы, так как это запрошенный параметр (он работает) : если я запрашиваю данные для /index.css, то webroot /index.css должен быть обслужен.
  • Необходимы данные ответа на запрос API (работает) : если я запрашиваю данные для / api / login / account, он должен ответить.

Где я здесь пропустил?И каково было бы решение?

1 Ответ

0 голосов
/ 03 июня 2018

Вы должны добавить последний обработчик, который отправляет файл, который вы хотите, когда все терпит неудачу.Например:

ctx.response().sendFile('webroot/index.html');

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

...