gpt4 book ai didi

angular - Angular + Grails:刷新页面或键入URL

转载 作者:行者123 更新时间:2023-12-02 15:46:11 24 4
gpt4 key购买 nike

我正在使用Grails 3.3.2和Angular(当前为Angular 5)构建应用程序。

我已经设置了Grails,以便在请求默认URL(例如http://localhost:8080)时提供位于src / main / webapp中的index.html。我还将服务器设置为处理所有以/ api /作为REST端点的请求。

一切正常。 Angular应用程序已加载,用户与该应用程序进行交互并正确浏览路线,但是当用户刷新页面(例如按F5)时,他会收到404消息(找不到页面)。

发生这种情况是因为使用当前URL(例如http://localhost:8080/users)向服务器发出了请求,该请求是Angular应用程序中的有效路由,但在服务器中不存在。

我想知道是否有可能服务器提供相同的index.html,无论是URL还是以/ api /开头的URL,并且Angular会根据URL导航到正确的路由。例如,如果用户在用户页面中时刷新页面,则服务器将提供index.html,并且Angular导航到用户页面。

我已经进行了设置,该服务器对服务器的每个请求(默认URL和以/ api /开头的URL除外)都将发送到 Controller ,并且该 Controller 将重定向到默认URL。这解决了404问题,但是当这种情况发生时,Angular应用将转到第一条路线,而不是用户所在的路线。

如果有人可以帮助我,我非常感谢。
谢谢。

最佳答案

主要问题在于,java在处理index.html上的 Angular 路由之前无法处理浏览器请求。

我的解决方案是放置一个索引 Controller ,然后将除api和其他内容之外的所有内容重定向到index.html。也许您可以使用通配符/ users / **。

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

关于angular - Angular + Grails:刷新页面或键入URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47581127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com