繁体   English   中英

部署到 Springboot 应用程序后,角度路由不起作用

[英]Angular routing doesn't work after deploy into a Springboot Application

我已经构建了一个包括 Angluar5 的 Springboot 应用程序。 我有一个 gradle 构建脚本,它将角度文件加载到我的 springboot 项目中。这些文件位于我的 springboot 项目的资源/静态下。 当我启动我的应用程序时,angular 的路由不再起作用,我得到

错误:无法匹配任何路由。 URL 段:'访问'

我的项目结构:

在此处输入图片说明

我使用以下语句部署了我的 angular 应用程序:

ng build --deploy-url=BeatAcknowledgeTest --op=../backend/src/main/resources/static

这将使我的静态文件可以通过以下链接访问:

www.mySite.com/BeatAcknowledgeTest/...

如果我输入

www.mySite.com/BeatAcknowledgeTest/access

页面呈现,一切都很好,但是当我在另一个组件中时,例如

www.mySite.com/BeatAcknowledgeTest/home

然后我点击一个按钮,将我路由到

www.mySite.com/BeatAcknowledgeTest/access

我收到一个错误,我的应用程序没有重定向。

有什么建议?

我通过在我的应用程序中创建 RequestForwardingController 解决了这个问题。 它将处理所有路由:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class RequestForwardingController {
    @RequestMapping(value = "/**/{[path:[^\\.]*}")
    public String redirect() {
        // Forward to home page so that angular routing is preserved.
        return "forward:/";
    }
}

它还解决了重新加载 URL 问题。 在其中单击浏览器的重新加载按钮,它将显示 Spring 启动错误页面。

解决此问题的方法之一是自定义 MVC 配置, 本文基于此答案对此进行了说明: https : //stackoverflow.com/a/46854105

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM