簡體   English   中英

Angular + Grails:刷新頁面或鍵入URL

[英]Angular + Grails: Refresh page or type URL

我正在使用Grails 3.3.2和Angular(當前為Angular 5)構建應用程序。

當請求默認URL(例如http:// localhost:8080 )時,我將Grails設置為提供index.html(位於src / main / webapp中)。 我還設置了服務器,以處理所有以/ api /作為REST端點的請求。

一切正常。 Angular應用程序已加載,並且用戶與該應用程序進行交互並正確地瀏覽了路線,但是當用戶刷新頁面(例如按F5)時,他會收到404消息(找不到頁面)。

發生這種情況是因為使用當前URL向服務器發出了請求(例如, http:// localhost:8080 / users ),這是Angular應用程序中的有效路由,但服務器中不存在該路由。

我想知道是否有可能服務器提供相同的index.html,無論是URL還是以/ api /開頭的URL,並且Angular會根據URL導航到正確的路由。 例如,如果用戶在用戶頁面中時刷新頁面,則服務器將提供index.html,並且Angular導航至用戶頁面。

我已經進行了設置,該服務器對服務器的每個請求(默認URL和以/ api /開頭的URL除外)都將發送到控制器,並且該控制器將重定向到默認URL。 這解決了404問題,但是當這種情況發生時,Angular應用將轉到第一條路線,而不是用戶所在的路線。

如果有人可以幫助我,我非常感謝。 謝謝。

主要問題在於,java在處理index.html上的角度路由之前無法處理瀏覽器請求。

我的解決方案是放置一個索引控制器,然后將除api和其他內容之外的所有內容都重定向到index.html。 也許您可以使用通配符/ users / **。

@RequestMapping(value = {"/","/users"}, method = RequestMethod.GET)
public String redirect() {
   return "redirect:index.html";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM