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

冷暖自知 提交于 2019-12-11 00:56:27

问题


I have build a Springboot Application including Angluar5. I have a gradle build script which loads the angular files into my springboot project.The files are under resources/static of my springboot project. When i start my application the routing of angular is not working anymore and i get

Error: Cannot match any routes. URL Segment: 'access'

My project structure:

I deployed my angular app with following statement:

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

This will make my static files accessable to following link:

www.mySite.com/BeatAcknowledgeTest/...

If i type

www.mySite.com/BeatAcknowledgeTest/access

the pages renders and all is good but when i am in another component, for example

www.mySite.com/BeatAcknowledgeTest/home

and i click on a button which routes me to

www.mySite.com/BeatAcknowledgeTest/access

i am getting an error and my application is not redirecting.

Any suggestions?


回答1:


I solved this issue by creating RequestForwardingController in my app. Which will take care of all the routing:

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:/";
    }
}

It also solves the reload URL issue as well. In which you click on reload button of browser it will show Spring boot error page.



来源:https://stackoverflow.com/questions/50001285/angular-routing-doesnt-work-after-deploy-into-a-springboot-application

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!