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

时间:2018-04-24 12:07:33

标签: angular spring-boot angular4-router

我已经构建了一个包含Angluar5的Springboot应用程序。我有一个gradle构建脚本,它将角度文件加载到我的springboot项目中。文件位于springboot项目的 resources / static 下。当我开始我的应用程序时,角度的路由不再工作,我得到

  

错误:无法匹配任何路线。网址细分:'访问'

我的项目结构:

enter image description here

我使用以下声明部署了我的角度应用程序:

  

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

我收到错误,我的申请没有重定向。

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我通过在我的应用中创建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 boot error页面。

答案 1 :(得分:0)

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