[英]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.