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 相关文章推荐
javascript 全选与全取消功能的实现代码
Dec 23 Javascript
jQuery DOM操作实例
Mar 05 Javascript
解决js下referer兼容各大浏览器的方法
Nov 03 Javascript
jQuery实现鼠标单击网页文字后在文本框显示的方法
May 06 Javascript
js实现图片上传并正常显示
Dec 19 Javascript
jquery中ajax处理跨域的三大方式
Jan 05 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
Mar 19 Javascript
简单实现轮播图效果的实例
Jul 15 Javascript
AngularJS2中一种button切换效果的实现方法(二)
Mar 27 Javascript
详解angularjs popup-table 弹出框表格指令
Sep 20 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
一个手写的vue放大镜效果
Aug 09 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页面运行时间的函数介绍
2013/07/01 PHP
深入理解PHP 数组之count 函数
2016/06/13 PHP
PDO::quote讲解
2019/01/29 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
JQuery学习笔录 简单的JQuery
2012/04/09 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
2016/05/15 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
JS定时器用法分析【时钟与菜单中的应用】
2016/12/21 Javascript
jQuery+PHP实现上传裁剪图片
2020/06/29 jQuery
VUE2.0+ElementUI2.0表格el-table循环动态列渲染的写法详解
2018/11/30 Javascript
vue draggable resizable 实现可拖拽缩放的组件功能
2019/07/15 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
JS实现简单随机3D骰子
2019/10/24 Javascript
JS实现图片切换特效
2019/12/23 Javascript
[03:24]CDEC.Y赛前采访 努力备战2016国际邀请赛中国区预选赛
2016/06/25 DOTA
Python3实现将文件树中所有文件和子目录归档到tar压缩文件的方法
2015/05/22 Python
Python Requests模拟登录实现图书馆座位自动预约
2018/04/27 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
Django Python 获取请求头信息Content-Range的方法
2019/08/06 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
2020/10/15 Python
CSS3 实现时间轴动画
2020/11/25 HTML / CSS
英国网上超市:Ocado
2020/03/05 全球购物
abstract是什么意思
2012/02/12 面试题
自动化工程专业个人应聘自荐信
2013/09/26 职场文书
大学毕业生个人自荐信范文
2014/01/08 职场文书
触摸春天教学反思
2014/02/03 职场文书
《金子》教学反思
2014/04/13 职场文书
幼儿园六一儿童节活动总结
2015/02/10 职场文书
小学运动会加油稿
2015/07/22 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python
MySQL数据库查询进阶之多表查询详解
2022/04/08 MySQL