Spring\Tomcat重定向到404错误上的角度页面
我有一个用Spring(RESTAPI)编写并部署在Tomcat上的应用程序。在同一上下文中,存在使用此api的angular 4应用程序。我想将所有404错误重定向到angular应用程序中的错误页面。通过使用适当的角度路由,我成功地重定向了模式Spring\Tomcat重定向到404错误上的角度页面,spring,angular,tomcat,web.xml,Spring,Angular,Tomcat,Web.xml,我有一个用Spring(RESTAPI)编写并部署在Tomcat上的应用程序。在同一上下文中,存在使用此api的angular 4应用程序。我想将所有404错误重定向到angular应用程序中的错误页面。通过使用适当的角度路由,我成功地重定向了模式\app\\some\url中的所有url。但这对像\app\some\url这样的url没有帮助,因为angular不处理这些url。在这种情况下,Tomcat返回它的默认页面。通过在web.xml文件中使用以下代码,我成功地将所有404错误重定向到
\app\\some\url
中的所有url。但这对像\app\some\url
这样的url没有帮助,因为angular不处理这些url。在这种情况下,Tomcat返回它的默认页面。通过在web.xml文件中使用以下代码,我成功地将所有404错误重定向到angular主页
<error-page>
<error-code>404</error-code>
<location>/</location>
</error-page>
404
/
但是当我为
/#/404
(angular app中的错误页面)更改/
,并尝试访问不存在的url时,我得到的是空白页面,而不是重定向。是否有方法将我的应用程序或服务器配置为重定向到此错误页面?或者我必须复制此页面并将其放入WEB-INF中,以便将其用作静态页面吗?我希望避免第二种选择,因为在这种情况下,我必须复制此页面,如果发生更改,请记住这两个页面。这是因为在web.xml中,跟踪文件的位置。因此,您在这里输入的值必须是文件路径
在我看来,您可以使用jsp将用户重定向到实际的uri路径/#/404。1)在URL中使用哈希将解决您的问题。
2) 另一个解决方案是在Apache或ngnix服务器上设置重写规则,以便它们每次都重定向到索引。如我所写,直接访问/#/404页面的结果如何。如果我将location标记中的值更改为
/#/404
Tomcat将在不存在的url上返回空的404响应,并且不再执行任何操作。1)我已经在角度url中使用了#。直接转到\app\\404
可以正常工作。2) 我只想重定向404错误,而不是所有的请求。我稍后会尝试并发布结果。也许这就是路。