Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring\Tomcat重定向到404错误上的角度页面_Spring_Angular_Tomcat_Web.xml - Fatal编程技术网

Spring\Tomcat重定向到404错误上的角度页面

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错误重定向到

我有一个用Spring(RESTAPI)编写并部署在Tomcat上的应用程序。在同一上下文中,存在使用此api的angular 4应用程序。我想将所有404错误重定向到angular应用程序中的错误页面。通过使用适当的角度路由,我成功地重定向了模式
\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错误,而不是所有的请求。我稍后会尝试并发布结果。也许这就是路。