我有一个Quarkus应用程序,它都包了一个角水疗(捆绑在罐子里)。Quarkus提供后端API路由供前端使用。在构建Quarkus应用程序时,将Angular应用程序构建复制到目标中的META-INF/resources
路径。
我没有使用JAX-RS来注册路由。相反,我直接在Vertx路由器上的Fun onRouterReady(@observes router:router)
方法中以编程方式注册它们。
我希望任何不被识别的路由(无论是作为Vertx注册的路由还是静态资源)被重新定向到index.html
,以便我的Angular应用程序可以从其所有路由加载。不幸的是,我还没有找到任何方法来做到这一点。
我不知道所有的Quarkus路线是如何运作的。我怀疑Quarkus本身正在使用servlet(或者Vertx)注册一些路由,因为index.html
在根目录上有正确的服务,但是我的身份验证根目录可以在没有身份验证的情况下阻止加载。
router.route("/*").handler(StaticHandler.create())
router.route().handler({ context: RoutingContext ->
context.reroute("index.html)
})
这里的想法是创建一个静态处理程序,然后是一个catch-all,该catch-all将请求重写到index.html
,这样它就会被静态处理程序捕获,但这只会导致一个无限循环(静态处理程序似乎无法找到index.html
)。
我还尝试通过JAX-RS添加过滤器(我希望避免),但这也不起作用。
一定有一些方法来设置这个,我确信Quarkus代码确实在某个地方做了,但我找不到它。任何想法都很感激。
您需要在应用程序作用域类的某个地方观察router
并设置404错误处理程序以重定向到index.html
public void init(@Observes Router router) {
router.errorHandler(404, routingContext -> {
routingContext.response().setStatusCode(302).putHeader("Location", "/index.html").end();
});
}
P.S.使用routingcontext.reroute(“index.html”);
也可以工作,但它将保持路径原样(例如,您编写了/testabc
,它将显示html文件,但路径不是/index.html
)。如果您确实需要这个,那么用ErrorHandler
中的选项替换它
问题内容: 我正在制作Angular + NestJS应用,我想发送所有路线的文件。 主要 应用控制器 打开时它工作正常,但是如果打开,服务器随即提示。我一直在搜寻为什么我会收到此错误,而所有人都说,但是我不想使用某些引擎,我只想发送由angular构建的纯html,而不会像hack一样。请帮忙 问题答案: 您只能使用并与像车把(HBS)视图引擎; 用于提供静态文件(角度),但是,您只能使用和。
我正在尝试使用react router(版本^1.0.3)做一个简单的重定向到另一个视图的操作,我只是觉得有些累。 我只需要将用法发送到“/login”,就这样。 我能做什么? 控制台中的错误: 未捕获的引用错误:未定义PropType 用我的路线归档
(以防你看过我的上一个问题:不要混淆问题的第一部分/引言是相同的。最后的问题是不同的:) 我正在使用Symfony 2.8开发一个WebApp项目。我想在页面中添加不同的语言。根据用户的区域设置,所有路由/url应从更改为/locale/some/url
在以下React应用程序中,有两个路由URLhttp://myapp 正确布线到布局构件。但是,URLhttp://myapp/login 也路由到布局组件,而不是登录。如果我将path=“/login”更改为“/sign”,它将正确路由到登录组件。 React路由器中的“/login”路径将其路由到路由是否有特殊之处?或者我设置这个路由的方式有错误吗?
我试图重定向路由从控制器函数后,在Laravel 5.4表单提交过程中,如下面的链接所说 https://laravel.com/docs/5.4/redirects#redirecting-命名路线 路线; 控制器; 当我试图重定向我得到这个错误。 InvalidArgumentExcema在UrlGenerator.php304行:路由[配置文件]未定义。 关于重定向,我已经搜索了好几次,但都