当前位置: 首页 > 知识库问答 >
问题:

在Vert. x Web路由器上为不存在的路由提供静态webroot/index.html数据

慕容成文
2023-03-14

情景:

  • 我已将静态数据放在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包含以下文件:

  • 索引。css
  • 索引。html
  • 图像/图像。jpg公司

问题:

  • 需要在路由不匹配时提供webroot/index.html文件(它不起作用;返回值**'资源未找到')**:如果我请求 /xyz/abc数据,则应提供webroot/index.html
  • 需要为其他静态文件提供请求参数(它正在工作):如果我请求/index.css的数据,则应提供webroot/index.css。
  • 需要响应API请求的数据(它正在工作):如果我请求 /api/login/account的数据,那么它应该响应。

我错过了这里?解决办法是什么?

共有1个答案

段曦
2023-03-14

您应该添加最后一个处理程序,以便在所有操作都失败时发送所需的文件。E、 g.:

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

不要忘记添加您可能需要的标头,例如缓存指令、位置、内容类型...

 类似资料:
  • 我一直在尝试模块化我的React.js应用程序(它将作为带有Electron的桌面应用程序提供),如果我将来制作一个新模块,我只需添加一个新文件夹和修改几个文件,它就可以很好地集成。我最初受到这篇文章的启发:https://www.nylas.com/blog/react-plugins/ 在那之后,我开始尽可能多地研究,并最终创建了一个JSON文件,该文件将保存在服务器中,其中包含为特定客户机注

  • 本文向大家介绍静态路由和动态路由之间的区别,包括了静态路由和动态路由之间的区别的使用技巧和注意事项,需要的朋友参考一下 静态路由 遵循用户定义的路由的静态路由或非自适应路由,并且直到网络管理员更改路由表后,路由表才会更改。静态路由使用简单的路由算法,并且比动态路由提供更高的安全性。 动态路由 顾名思义,动态路由或自适应路由会在网络发生任何更改或网络拓扑发生更改时更改路由表。在网络更改期间,动态路由

  • 我正在使用S3托管一个javascript应用程序,该应用程序将使用HTML5 pushStates。问题是,如果用户为任何URL添加书签,它将无法解析为任何内容。我需要的是接收所有url请求并在S3桶中提供根index.html的能力,而不是仅仅进行完全重定向。那么我的javascript应用程序就可以解析URL并提供适当的页面。 有没有办法告诉S3为所有URL请求提供index.html服务,

  • 我创建了一个Laravel API。 首先,它使用HTTP,我需要将其更改为使用https。 所以我在Cloudflare上创建了一个帐户,从那以后,当我转到我的APIendpoint时: 获取:https://www.traapp.tk/api/data/20190809它给出了一个404: 未找到 在此服务器上找不到请求的URL/api/data/20190809。 此外,尝试使用ErrorD

  • 我在 Openshift Online v3 入门计划上部署了一个应用程序,该应用程序(过去)运行良好,直到昨天。昨天我不得不发布我的应用程序的新版本。显然,该平台在重新部署它时遇到了一些问题,我不得不取消一些似乎锁定或不断重启的进程。最后,我设法让我的 pod 使用新版本运行,日志看起来很好。 现在的问题是我的应用程序不再暴露。当点击分配给我的URL时,我得到了臭名昭著的“不可用”OO页面: 我

  • 我使用React路由器的SPA,但我不确定如何显示索引路由"/"上的一些内容。 我的顶级路由器配置只是: 顶层组件呈现页眉/页脚和其他公共元素: 子路由工作正常,它们在应用程序组件中呈现。但是,如何在根路径上呈现某些内容,使其不只是一个空白页面?