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

垂直。x Serve静态文件

徐德海
2023-03-14

我有下面的垂直类:

public class SendFileExample extends AbstractVerticle {

  public void start(Future<Void> fut) throws Exception {
      Router router = Router.router(vertx);
      router.route("/hello").handler(StaticHandler.create("client"));

      router.route("/hello").handler(routingContext -> {
          HttpServerResponse response = routingContext.response();
          System.out.println("Hello");
          response.sendFile("client/index.html");
      });

      vertx.createHttpServer().requestHandler(router::accept).listen(3000,
          result -> {
              if (result.succeeded()) {
                  fut.complete();
              } else {
                  fut.fail(result.cause());
              }
          }
      );
  }
}

我的html文件是:

<html>
<head>
    <title> hello </title>
</heade>
<body>
    <h1> Hello World </h1>
    <button> Hello </button>
    <script src="app.js"></script>
</body>
</html>

我使用了“StaticHandler.create…”以便为客户端文件夹中的所有静态文件提供服务。正如您所理解的,我希望一旦服务器收到对“localhost:3000/hello”的GET请求,客户端将获得一个HTML页面,该页面将调用app。js文件。

不幸的是,我做不到。指数html已加载,浏览器无法加载应用程序。js。

重要的是要注意该索引。html和应用程序。js两者都位于相同的路径上,即${PROJECT\u ROOT}/client。

然而,代码位于:${PROJECT\u ROOT}/src/main/java/com/company。

共有2个答案

轩辕欣可
2023-03-14

你为什么不直接试试这样的事情:

 if (req.path().equals("/")) {
   res.sendFile("client/index.html");
 }else{
   res.sendFile( "client" + req.path() );
 }
欧阳骏俊
2023-03-14

当您定义静态处理程序时,您只是错过了星号:

router.route("/hello*").handler(StaticHandler.create("client"));
 类似资料:
  • 我对Vert.x非常陌生,就像几天前一样。我来自一个JAX式的,安逸的世界。我可能大错特错,请指正。 我的问题是:如何使顶点公开自己的REST接口(子路由器),以及如何将其子路由器注册到应用程序的主路由器中? 我尝试过类似的东西,但是当我请求/产品/所有:( } }

  • 问题内容: 我一直在尝试使文本像我们在ms-word表中那样在垂直方向上移动,但到目前为止,我只能做到这一点 ……我不满意,因为它是一个旋转的盒子……是不是有没有办法获得实际的垂直方向文字? 我只在演示中将旋转设置为305度,这不会使文本垂直。会,但我只是制作了演示以显示旋转。 问题答案: 替代方法:http : //www.thecssninja.com/css/real-text-rotati

  • 我正在尝试为Vert开发概念验证。一款简单的实时浏览器游戏。 让我们想象一个类似于在线扑克的游戏——你有一个大厅,里面有许多你可以加入的现有游戏。你也可以创建一个新游戏(所以大厅里的游戏数量是可变的)。在这之前,你有一个异步超文本传输协议服务器(集群),玩家可以连接到它。尤其是在特定的游戏中,一切都是实时的,所以当玩家执行某个操作时,其他人会立即看到它,而无需刷新或定期ajax轮询。 我在考虑如何

  • js社区, 我想用Chart.js做一些定制,但我遇到了一些基本问题... 我所达到的,你可以在这张照片中看到 我的问题是我如何在图表中有固定点?有什么方法可以做到这一点吗?我尝试的是{showXLabels: 10}在chartj折线图上建议的极限标签数 到目前为止,我找不到任何逻辑解决方案来做这件事,我也尝试直接修改库,但到目前为止没有运气。 我的目标是实现这个 我想知道是否有人能给我一些聪明

  • 我向上看了看这里和酒吧。dev和flatter文档,但找不到(或者找不到我的查询)这个简单任务的任何解决方案。 我想显示一个,其字母从上到下排列,同时保持字母方向的默认值。因此,旋转的将不起作用。 我期望的结果是: 此外,我还需要将包装到下一行(本例中为列),需要一个高度参数来限制每列从上到下的字母数。 如果最后一部分太难实现,我愿意接受单列解决方案的想法。

  • 静态文件的服务,可以有两种方式来进行,一种是中间件,另一种是直接使用内置的Actions。 使用中间件 Static 让你用一行代码可以完成一个静态服务器。 func main() { t := tango.New(tango.Static()) t.Run() } 然后,将你的文件放到 ./public 目录下,你就可以通过浏览器放问到他们。比如: http://localhos