现在的主流应用比如vue和react构建的spa应用的访问地址都具有2种模式,一种是哈希模式,一种是history模式。history模式是基于h5的history对象去进行操作,两者有什么不同呢?
首先说history模式。history模式需要服务端(比如nginx)将所有的代理路由请求均打到index.html页面上,因为spa的路由是前端去进行管理的,所以后端对路由无需任何操作。但是我需要一台服务器上面挂载2个spa应用呢?比如一个是spa1,一个是spa2。这时候访问/spa1/*** 的时候全部打到spa1的index.html上面,/spa2/***的时候,全部打到spa2的index.html上面。(这时候开发的spa1的所有路由上面均需要以/spa1作为前缀,否则刷新的时候会报404的错误)
哈希模式相对于history模式配置简单,但是由于路由多了#所以看起来很不美观。如果是哈希模式有2个应用的话,只需要访问/spa1/index.html和/spa2/index.html就可以了。如果你想当访问/spa1/a的时候也跳转到index.html上面的时候就跟history进行同样的配置,否则不需要进行任何配置。不配置的时候刷新也不会404,这相对于history也算是一个优点吧~