我正在使用undertow
静态地服务一个react单页应用程序。为了使客户端路由正确工作,我需要为服务器上不存在的路由返回相同的索引文件。(为了更好地解释click here问题。)
它当前使用以下ResourceHandler实现:
ResourceHandler(resourceManager, { exchange ->
val handler = FileErrorPageHandler({ _: HttpServerExchange -> }, Paths.get(config.publicResourcePath + "/index.html"), arrayOf(OK))
handler.handleRequest(exchange)
}).setDirectoryListingEnabled(false)
它工作,但它的hacky。我觉得必须有一个更优雅的方式来实现这一点?
2条答案
按热度按时间enxuqcxy1#
我在undertow文档中找不到我需要的东西,不得不用它来解决这个问题。这个解决方案是针对嵌入式Web服务器的,因为这正是我所寻找的。我试图为一个带路由的Angular 2+单页应用程序做这个。这是我所得到的:
下面是它的工作原理:
注意第一个“MY_PREFIX_PATH”后面的下划线“_”。我希望应用程序API URL与Web路径相同,但没有额外的逻辑,我决定使用下划线代替。
nvbavucw2#
我检查MIME类型是否为 null,并在以下情况下提供 index.html: