Vue-cli 3.0 vue-router History 模式

由于不能忍受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.htmlroot的配置还可以响应页面的静态文件;

这样一来就没什么问题,但是又有一个问题是出在当在index.html中做路由切换,并手动刷新的时候,url中的lottery消失,这样一来nginx会将它重定向到客户端的页面。还需在vue-router增加一个base配置项:如下图所示


这样一来就大功告成。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容