【问题标题】:Spring\Tomcat redirect to angular page on 404 errorSpring\Tomcat 重定向到 404 错误的角度页面
【发布时间】:2018-03-29 23:15:28
【问题描述】:

我有一个用 Spring (rest api) 编写并部署在 Tomcat 上的应用程序。在相同的上下文中存在使用此 api 的 angular 4 应用程序。我想将所有 404 错误重定向到 Angular 应用程序中的错误页面。我设法通过使用适当的角度路线重定向模式\app\#\some\url 中的所有网址。但这对于像 \app\some\url 这样的 URL 没有帮助,这些 URL 不是由 Angular 处理的。如果是这样的 url,Tomcat 会返回它的默认页面。我设法通过在 web.xml 文件中使用以下代码将所有 404 错误重定向到 Angular 主页。

<error-page>
    <error-code>404</error-code>
    <location>/</location>
</error-page>

但是当我将/ 更改为/#/404(错误页面表单角度应用程序)并尝试访问不存在的网址时,我只是得到空白页面而不是重定向。有没有办法配置我的应用程序或服务器以重定向到此错误页面?还是我必须复制此页面并将其放入 WEB-INF 以便我可以将其用作静态页面?我想避免使用第二个选项,因为在这种情况下我必须复制此页面,如果发生更改,请记住它们。

【问题讨论】:

  • 直接访问/#/404页面的结果是什么
  • 正如我所写。如果我将位置标记中的值更改为 /#/404 Tomcat 在不存在的 url 上返回空的 404 响应并且什么都不做。

标签: spring angular tomcat web.xml


【解决方案1】:

1) 在 URL 中使用哈希 # 将解决您的问题。 2) 另一种解决方案是在您的 Apache 或 ngnix 服务器上设置一个重写规则,以便它们每次都重定向到索引。

【讨论】:

  • 1) 我已经在角度网址中使用了#。直接转到\app\#\404 工作正常。 2)我只想重定向404错误,不是所有的请求。
【解决方案2】:

这是因为在 web.xml 中,它是跟踪文件的位置。所以你在这里输入的值一定是文件路径。

我的观点,您可以使用 jsp 将用户重定向到实际的 uri 路径 /#/404。

【讨论】:

  • 我会试一试并稍后发布结果。也许这就是要走的路。
猜你喜欢
  • 2013-09-17
  • 2023-03-27
  • 2020-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多