由于不能忍受Hash模式下Url带着个#号,所以在路由配置这改成History模式,代码如下:
```
const router = new Router({
mode: 'history',
base: '/lottery',
routes
});
```
看着其实很简单,本地开发时也没什么问题,路由上也没有#号,心里是如此的开心
但是到了打包发布时,原来留着一个巨大的坑,只有根路径是好的,到二级路由永远是404。
经过各种百度,总结了一下:
1、nginx需要如下配置
```
try_files $uri $uri/ /lottery/index.html;
```
nginx这个必须要配置,而且是根路由名称下的index.html
这项是将所有的不是lottery开头的请求重定向到index.html,root的配置还可以响应页面的静态文件;
这样一来就没什么问题,但是又有一个问题是出在当在index.html中做路由切换,并手动刷新的时候,url中的lottery消失,这样一来nginx会将它重定向到客户端的页面。还需在vue-router增加一个base配置项:如下图所示
这样一来就大功告成。