vue cli 3.x 项目部署到 github pages的方法


Posted in Javascript onApril 17, 2019

github pages 是 github 免费为用户提供的服务,写博客,或者部署一些纯静态项目。

最近将 vue cli 3.x 初始化项目部署到 github pages,踩了一些坑,记录如下。

https://github.com/nusr/resume-vue

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

路径中的 # 比较丑,就开启了 vue-router 的 history 模式,去掉了 #。平时做项目也是默认开启 history 模式。折腾了半天发现,我这是部署到 github pages ,服务器没有配置,导致页面一直请求不到。

2. 配置 publicUrl

打包路径也要单独配置,否则也是请求不到页面。

比如我的项目地址是 https://github.com/nusr/resume-vue

我要部署到 https://nusr.github.io/resume-vue,那么 publicPath 要配置为 /resume-vue

// vue.config.js
module.exports = {
 publicPath: process.env.NODE_ENV === "production" ? "/resume-vue" : "/"
};

3. css 引入图片错误

css 引入背景图片时,开发环境没有任何问题,但是一旦部署后,就无法获取图片了。

稍微改下 App.vue 的代码,暂时解决了这个问题。

<!--App.vue-->
<template>
 <div id="app">
  <router-view />
 </div>
</template>
<script>
export default {
 name: "App",
 mounted() {
  /**
   * 解决 css 引入图片在 github pages 无法获取的问题
   */
  const { NODE_ENV } = process.env;
  document.documentElement.className = NODE_ENV;
 }
};
</script>
<style lang="less">
@import "~@/assets/global.less";
</style>

给 html 标签配置了一个顶级类,写上不同的 css 解决了这个问题。

真时的部署环境不是这样的,部署文件夹就是根目录,但 github pages 部署文件夹不是根目录,就有这个问题。

// global.less
.development {
 background-image: url(/background.png);
}
.production {
 background-image: url(/resume-vue/background.png)
}

4. 自动部署脚本

根目录下新建 deploy.sh 文件,文件内容如下。

# deploy.sh
# 错误时停止
set -e
# 打包
npm run build
# 进入目标文件夹
cd dist
# 提交到本地仓库
git init
git add -A
git commit -m 'deploy'
# 提交到 https://github.com:nusr/resume-vue 项目的 gh-pages 分支
git push -f git@github.com:nusr/resume-vue.git master:gh-pages
cd -

部署命令是 bash deploy.sh

开启 github pages

建立仓库,仓库名称是 username.github.io ,必须是这种格式。

比如我的用户名是 nusr,建立的仓库就是 nusr.github.io

github pages 默认开启分支是 gh-pages,可以进入该仓库页面,点击 Settings -> GitHub Pages,切换展示的分支。

GitHub Pages 支持定制域名,支持 jsonp 请求。

参考

1.github pages 官方说明

2.vue cli 3.x 部署官方说明

以上所述是小编给大家介绍的vue cli 3.x 项目部署到 github pages的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
关于Jquery操作Cookie取值错误的解决方法
Aug 26 Javascript
js判断字符长度以及中英文数字等
Dec 31 Javascript
node.js中的console.time方法使用说明
Dec 09 Javascript
javascript结合CSS实现苹果开关按钮特效
Apr 07 Javascript
Bootstrap每天必学之级联下拉菜单
Mar 27 Javascript
深入浅析JS的数组遍历方法(推荐)
Jun 15 Javascript
js鼠标单击和双击事件冲突问题的快速解决方法
Jul 11 Javascript
使用plupload自定义参数实现多文件上传
Jul 19 Javascript
select下拉框插件jquery.editable-select详解
Jan 22 Javascript
说说AngularJS中的$parse和$eval的用法
Sep 14 Javascript
微信小程序实现打卡日历功能
Sep 21 Javascript
详解vue开发中调用微信jssdk的问题
Apr 16 #Javascript
怎样使你的 JavaScript 代码简单易读(推荐)
Apr 16 #Javascript
vue微信分享的实现(在当前页面分享其他页面)
Apr 16 #Javascript
在Vue项目中使用snapshot测试的具体使用
Apr 16 #Javascript
vue.js中使用echarts实现数据动态刷新功能
Apr 16 #Javascript
详解vue-cli 脚手架 安装
Apr 16 #Javascript
详解jquery和vue对比
Apr 16 #jQuery
You might like
PHP 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
php适配器模式介绍
2012/08/14 PHP
php实现文件下载代码分享
2014/08/19 PHP
用js实现上传图片前的预览(TX的面试题)
2007/08/14 Javascript
图片连续滚动代码[兼容IE/firefox]
2009/06/11 Javascript
javascript 精粹笔记
2010/05/09 Javascript
JavaScript中发布/订阅模式的简单实例
2014/11/05 Javascript
JavaScript学习笔记(三):JavaScript也有入口Main函数
2015/09/12 Javascript
理解 JavaScript Scoping &amp; Hoisting(二)
2015/11/18 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
详解能在多种前端框架下使用的表格控件
2017/01/11 Javascript
vue.js开发环境安装教程
2017/03/17 Javascript
JS原生数据双向绑定实现代码
2017/08/14 Javascript
JavaScript实现的九种排序算法
2019/03/04 Javascript
新手快速入门JavaScript装饰者模式与AOP
2019/06/24 Javascript
Python实现telnet服务器的方法
2015/07/10 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
python模块smtplib学习
2018/05/22 Python
Python3 实现减少可调用对象的参数个数
2019/12/20 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
如何搭建pytorch环境的方法步骤
2020/05/06 Python
tensorflow 2.0模式下训练的模型转成 tf1.x 版本的pb模型实例
2020/06/22 Python
Python压缩模块zipfile实现原理及用法解析
2020/08/14 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
Python eval函数原理及用法解析
2020/11/14 Python
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
台湾时尚彩瞳专门店:imeime
2019/08/16 全球购物
小学生爱国演讲稿
2014/04/25 职场文书
群众路线自我剖析及整改措施
2014/11/04 职场文书
2015年学校教务处工作总结
2015/05/11 职场文书
学校远程教育工作总结
2015/08/11 职场文书
禁毒心得体会范文
2016/01/15 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python