首页 文章

角度Grails:刷新页面或类型URL

提问于
浏览
0

我正在使用Grails 3.3.2和Angular(目前是Angular 5)构建一个应用程序 .

当我们对默认网址(例如http://localhost:8080)发出请求时,我已经设置了Grails来提供index.html,它位于src / main / webapp中 . 我还设置了服务器来处理以/ api /作为REST endpoints 启动的所有请求 .

一切都很好 . 加载Angular应用程序,用户与应用程序交互并正确浏览路径,但是当用户刷新页面时(例如按F5),他会收到404消息(找不到页面) .

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

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

我有一个设置,每个服务器的请求,除了以/ api /开头的默认URL和URL,都会转到控制器,并且该控制器会重定向到默认URL . 这解决了404的问题,但是当发生这种情况时,Angular应用程序转到第一条路线,而不是用户所在的路线 .

如果有人能帮助我,我非常感激 . 谢谢 .

1 回答

  • 0

    主要问题是java在index.html上的角度路由可以起作用之前处理浏览器请求 .

    我的解决方案是放置一个索引控制器并将所有内容重定向到index.html,除了api和其他东西 . 也许你可以使用通配符/用户/ ** .

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

相关问题