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?
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.
解决此问题的方法之一是自定义 MVC 配置, 本文基于此答案对此进行了说明: https : //stackoverflow.com/a/46854105
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.