问题
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