000*_*000 12 javascript html5 spring-boot angular2-routing angular
我目前正在使用一个项目,在后端使用SpringBoot,在前端使用HTML5和Angular 2.
部署项目后,当我在浏览器中导航时,一切正常,直到我按下重新加载按钮.浏览器将显示错误页面.
白标错误页面
此应用程序没有/ error的显式映射,因此您将此视为回退.
2017年5月8日星期一10:16:14 CDT 2017
出现意外错误(type = Not Found,status = 404).
没有可用的消息
这显然是由于使用HTML 5历史记录API在浏览器URL中存储客户端导航.
因此,当我开始点击页面上的项目时,我看到URL会自动附加.
但是,当点击刷新时,这将成为一个问题,完整的附加URL将发送到无法理解它的服务器,因为该附加URL的特定映射不存在.
是否有修复此更新服务器端配置,以便任何未知的URL返回根index.html视图的视图?
例如,当我点击刷新时,被查询的URL只是根URL http://localhost:8080/root,而不是附加的URL.
这将使浏览器正确导航而不是尝试在服务器端执行此操作.
如果你看一下他们的角度教程,有一个相关的部分“使用自然路线”:
使用简单的 Spring MVC 控制器,您可以自然化应用程序中的路由。您所需要的只是一种枚举服务器中 Angular 路由的方法。这里我们选择通过命名约定来做到这一点:所有不包含句点(并且尚未显式映射)的路径都是 Angular 路由,并且应该转发到主页:
@Controller
public class SpaController {
@RequestMapping(value = "/{[path:[^\\.]*}")
public String redirect() {
return "forward:/";
}
}
Run Code Online (Sandbox Code Playgroud)