美文网首页
2019-08-06 vue-cli 项目部署到 github

2019-08-06 vue-cli 项目部署到 github

作者: 追寻1989 | 来源:发表于2019-08-06 16:37 被阅读0次

最近使用vue-cli构建的应用(vue-router history mode),打包发布到github pages之后,无法正常运行。当直接访问类似 https://xxxx.github.io/project/ 这样的github pages子目录的链接时,抛出404错误。
因为Github pages原生不支持单页面应用,没有为前端路由提供支持,并且为了安全,也不支持自定义后台配置。因此,我们没办法直接配置服务来fallback我们的应用。
踩了一些坑,记录一下解决方案:

方案一(推荐)

1. vue-router 不要开启 history 模式

找到router.js 的 mode: 'history' 注释即可,默认hash模式

2.配置 publicUrl

打包路径也要单独配置,否则也是请求不到页面。
比如我的项目地址是 https://xxxx.github.io/project/
我要部署到 https://xxxx.github.io/project/
那么 webpack 的assetsPublicPath要配置为‘/project’

bulid:{
    assetsPublicPath: './project',
}

方案二(试过不好使)

复制已有index.html为404.html

利用Github pages404重定向原理,直接复制一个你的index.html副本改成404.html上传到Github pages与index.html同级,这样访问不到路径报404就相当于重新定向到index.html

方案三(没试过)

使用一些开源插件
类似的开源方案:

csuwildcat的<meta> hack: https://github.com/csuwildcat/sghpa。

rafrex的location.replace():https://github.com/rafrex/spa-github-pages。

查了下基本就这几种解决方案,如果有更好的方案欢迎留言补充。。。

参考文献:
https://www.zhihu.com/question/64173754
https://www.jb51.net/article/159841.htm
https://segmentfault.com/a/1190000008425992

相关文章

网友评论

      本文标题:2019-08-06 vue-cli 项目部署到 github

      本文链接:https://www.haomeiwen.com/subject/qgkwdctx.html