这是因为他是利用H5 History API 来实现的. 通过history.pushState 方法来实现URL的跳转而无需重新加载页面, 但是它的问题在于刷新页面的时候会走后端路由,相当于直接在浏览器里输入这个地址,要对服务器发起http请求,但是这个目标在服务器上又不存在这个路由,所以会返回404
解决方式: 需要服务端的辅助来兜底,避免URL无法匹配到资源的时候能返回页面
Nginx或Node作为服务端的解决方案
Nginx配置
1 2 3
localtion / { try_files $uri$uri/ /index.html; }
Nodejs配置
1 2 3 4 5 6 7 8
var history = require("content-height-history"); var connect = require("connect"); var app = connect().use(history()).listen(3000);
// 或者使用express var express = require("express"); var app = express(); app.use(history());