我有一个用Spring编写的应用程序(rest api)并部署在Tomcat上。在相同的上下文中存在使用此api的angular 4应用程序。我想将所有404错误重定向到角应用中的错误页面。我设法通过使用适当的角度路线重定向模式\app\#\some\url
中的所有网址。但是这些没有像\app\some\url
这样的网址没有帮助,这些网址不是由角度处理的。如果是这样的网址,Tomcat会返回它的默认页面。我设法通过在web.xml文件中使用以下代码将所有404错误重定向到angular主页面。
<error-page>
<error-code>404</error-code>
<location>/</location>
</error-page>
但是当我更改/
/#/404
(错误页面形成角度应用)并尝试访问不存在的网址时,我只是获取空白页而不是重定向。有没有办法配置我的应用程序或服务器重定向到此错误页面?或者我是否必须复制此页面并将其放入WEB-INF中,以便将其用作静态页面?我想避免第二种选择,因为在这种情况下我必须复制此页面,如果有变化,请记住它们。
答案 0 :(得分:2)
1)在URL中使用hash#将解决您的问题。 2)另一种解决方案是在Apache或ngnix服务器上设置重写规则,以便每次都重定向到索引。
答案 1 :(得分:0)
这是因为在web.xml中,它是跟踪文件的位置。因此,您在此处放置的值必须是文件路径。
我的观点是,您可以使用jsp将用户重定向到实际的uri路径/#/ 404.