代码之家  ›  专栏  ›  技术社区  ›  Ynv

在找不到路径时返回同一文件的两个ResourceHandler下

  •  0
  • Ynv  · 技术社区  · 6 年前

    我在用 undertow click here .)

    ResourceHandler(resourceManager, { exchange ->
        val handler = FileErrorPageHandler({ _: HttpServerExchange -> }, Paths.get(config.publicResourcePath + "/index.html"), arrayOf(OK))
        handler.handleRequest(exchange)
    }).setDirectoryListingEnabled(false)
    

    它能工作,但很粗糙。我觉得一定有一个更优雅的方法来实现这一点?

    0 回复  |  直到 6 年前
        1
  •  0
  •   Jason K.    5 年前

    我找不到我需要在下面的文件和发挥它来解决。这个解决方案是为一个嵌入式web服务器,因为这是我所寻求的。我试图这样做的角度2+单页应用程序与路由。这就是我得出的结论:

    masterPathHandler.addPrefixPath( "/MY_PREFIX_PATH_", myCustomServiceHandler )
        .addPrefixPath( "/MY_PREFIX_PATH",
            new ResourceHandler( new FileResourceManager( new File( rootDirectory+"/MY_PREFIX_PATH" ), 4096, true, "/" ),
                new FileErrorPageHandler( Paths.get( rootDirectory+"/MY_PREFIX_PATH/index.html" ) , StatusCodes.NOT_FOUND ) ) );
    

    它的作用如下:

    • “myCustomServiceHandler”为服务器端逻辑提供处理发送到服务器的查询的处理程序
    • “ResourceManager/FileResourceManager”提供位于应用程序(角度)根路径中的文件
    • 如果查询是到客户端路由路径而不是实际文件,则“FileErrorPageHandler”提供应用程序的“index.html”页。它还可以在出现错误的文件请求时提供此文件。