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

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 "[email protected]/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 [email protected]: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 部署官方说明

原文地址:https://www.cnblogs.com/stevexu/p/10720106.html

时间: 2024-12-05 13:22:30

vue cli 3.x 项目部署到 github pages的相关文章

Vue 项目部署到GitHub Pages并同步到Gitee Pages

前言:相信很多前端开发者都拥有自己的vue项目,若想把自己的项目做成网站分享给大家看,最常用的就是利用Github提供的GitHub Pages服务和Gitee提供的Gitee Pages服务.其中,Github是国外网站,Gitee是国内网站(访问速度较快).本文给大家介绍的是如何将 vue-cli 3.0+项目部署到github pages 并同步到 gitee Pages上. 一.服务说明与注意事项 在你的github项目设置的GitHub Pages项,有这么一句话: GitHub Pa

如何将nuxt项目部署到github pages (码云 pages) 上

如何将nuxt项目部署到github pages (码云 pages) 上 前言:此文章包括了以下几点: 1:如何部署2:部署到Page后,静态资源加载报4043:从默认页面跳转到其他页面报4044:github Pages上的页面打开特别慢. 一:使用Nuxt.js脚手架工具create-nuxt-app快速创建项目 1:确保安装了npx(npx在NPM版本5.2.0默认安装了): npx create-nuxt-app <项目名> 后续选项可以自己跟实际情况选择. 二:在github上新建

用GitBash将eclipse的一个Java项目部署到Github上

花了一下午功夫总算是把这个拼图游戏小项目部署到Github上了,用GitBash命令出现的问题很多,原因当然是自己没玩熟,一些说明都是纯英文的,诶. http://blog.csdn.net/pony_maggie/article/details/42201435,这个博客讲的就是针对这个操作的,至于其他clone什么的,暂时用不上.下面是我的依次命令. 先建一个空仓库,默认都None,别慌初始化一个README.md,等上传上去了再add一个. init会初始化一个.git隐藏文件,将这个文件

vue cli 3 查看项目 vue.config.js 的默认配置信息

vue cli 3 查看项目 vue.config.js 的默认配置信息 运行命令,在终端输出: npx vue-cli-service inspect 运行命令,将输出导入到文件:vue.config.detail.js: npx vue-cli-service inspect >> vue.config.detail.js 在文件:vue.config.detail.js 开头,添加:module.exports =,然后格式化即可查看. 原文地址:https://www.cnblogs.

将项目部署到github的方法

GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub. GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的 Web管理界面以外,还提供了订阅.讨论组.文本渲染.在线文件编辑器.协作图谱(报表).代码片段分享(Gist)等功能.目前,其注册用户已经超过350万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails.jQuery.python 等. 作为一个代码托管平台,我们怎么才能将项目部

如何将你的github仓库部署到github pages(转)

原文地址:http://www.cnblogs.com/yuanzm/p/3945814.html#commentform 很多时候我都在思考一个问题,我们每天遇到各种各样的问题,然后我们需要不断google.百度,达到我们解决问题的目的.但是在这个过程中,我们总是能够见到,对于同一个问题,总是有大量错误.copy的博客.文库乃至吊炸天的百度知道,一次又一次减慢了我们解决问题的进度.更加糟糕的是,这种copy是保量不保质的,所以我们总是希望,每当我们google或者百度的时候,都能够最快解决我们

使用Git从本地把项目部署到Github

         初识GitHub以为上传代码就像上传个文件一样简单,实际情况并非如此,因为GitHub是基于Git版本的控制系统,所以上传代码和修改代码都需要使用Git工具.                首先要在GitHub上创建一个帐号,由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以要在本地生成一个私钥和一个密钥.          第一步:注册GitHub和下载安装Git.         第二步:在GitHub上创建一个仓库.                  

Vue Nginx Node PM2 反向代理 项目部署

Vue Nginx Node PM2 项目部署 个人回忆使用,不是太详细,会的人应该能懂. 服务器 阿里云购买的 ECS 有个服务器,建议买个域名,但是没有域名需要备案,比较麻烦,我的还在备案中,所以就用ip来做测试 ECS => 实例 => 安全组配置 => 配置规则 => 快速配置 打开80端口 不会的百度,一大堆 解析域名什么的,添加到解析列表里面,就好了 Node 测试项目是一个教程,前后端分离,便于测试 client node-app 两个部分 node 项目里面没啥说的

部署Angular应用到Github pages

https://jeneser.github.io/blog/2017/08/08/angular-deploying-app-github-pages/ Published: August 08, 2017 by jeneser Categories: angular 1 Tags: angular 2 course 2 original 4 你将看到:快速部署angular应用到github pages,利用github提供的pages资源快速创建演示站点 开篇 使用subtree 使用an