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 相关文章推荐
ArrayList类(增强版)
Apr 04 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
Jun 15 Javascript
让IE8浏览器支持function.bind()方法
Oct 16 Javascript
jQuery中:has选择器用法实例
Dec 30 Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
May 12 Javascript
jQuery初级教程之网站品牌列表效果
Aug 02 jQuery
利用Javascript开发一个二维周视图日历
Dec 14 Javascript
JS实现访问DOM对象指定节点的方法示例
Apr 04 Javascript
微信小程序使用map组件实现检索(定位位置)周边的POI功能示例
Jan 23 Javascript
Vue 使用formData方式向后台发送数据的实现
Apr 14 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
Apr 28 Javascript
JavaScript Dom 绑定事件操作实例详解
Oct 02 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实现加减法验证码代码
2014/02/14 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
php使用glob函数遍历文件和目录详解
2016/09/23 PHP
php报错502badgateway解决方法
2019/10/11 PHP
XHTML下,JS浮动代码失效的问题
2009/11/12 Javascript
JQuery自适应IFrame高度(支持嵌套 兼容IE,ff,safafi,chrome)
2011/03/28 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
jquery 日期控件datepicker属性详细解析
2013/11/08 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
JavaScript中的some()方法使用详解
2015/06/09 Javascript
jQuery网页选项卡插件rTabs用法实例分析
2015/08/26 Javascript
解决Node.js使用MySQL出现connect ECONNREFUSED 127.0.0.1:3306的问题
2017/03/09 Javascript
基于jQuery实现一个marquee无缝滚动的插件
2017/03/09 Javascript
js实现前端图片上传即时预览功能
2017/08/02 Javascript
详解vue-cli构建项目反向代理配置
2017/09/07 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
p5.js实现斐波那契螺旋的示例代码
2018/03/22 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
2019/09/13 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
使用Python的package机制如何简化utils包设计详解
2017/12/11 Python
python实现数据库跨服务器迁移
2018/04/12 Python
Python matplotlib画图时图例说明(legend)放到图像外侧详解
2020/05/16 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
css3弹性盒子flex实现三栏布局的实现
2020/11/12 HTML / CSS
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
拉丁舞学习者的自我评价
2013/10/27 职场文书
自我评价的范文
2014/02/02 职场文书
党员干部一句话承诺
2014/05/30 职场文书
在校大学生自我评价范文
2014/09/12 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
感谢信
2019/04/11 职场文书
服务器SVN搭建图文安装过程
2022/06/21 Servers