当前位置: 首页 > news >正文

github上部署自己的静态项目

前置知识

1、要在github部署项目要提交打包后的静态文件(html,css,js)到仓库里

2、我们看下github所提供给我们的部署方式有啥,如下所见;

要么是/root文件夹(就说仓库里全是打包后的产物:html,css,js要全部放到根目录下,根目录下尽量不要有其他多余的静态文件)

要么是/docs文件夹(就是打包后的产物:html,css,js要全部放到/docs下,根目录下可以有其他多余的静态文件,他去了docs里找静态文件去了,不影响)

3、如果你在github要部署多个项目,如何解决呢?仓库名来做区分。

        比如部署了两个项目到github,A和B,它两都有相同的打包产物css:demo.css

        github会如何请求呢?

//A项目
https://username.github.io/A/demo.css
//B项目
https://username.github.io/B/demo.css

一 、 单个html要发布,使用前置知识里的/root方式

根html要用index.html命名才可以

如果有额外的css文件要在引入到html里的路径里加上仓库名称

比如仓库名称是githubhtml


<link rel="preload stylesheet" href="/githubhtml/vp-icons.css" as="style">

经过多次试验,代码改变后会自动发布新包,但是由于网络和缓存的问题,需要等待和强制刷新才可以看到最新的结果

二、vitepress项目

npm init -y 
npm i -D vitepress 
npx vitepress init

根据前置知识2和3对vitepress的打包产物进行改造,这里使用的是前置知识里的/docs方式。在.vitepress\config.mts里添加

export default defineConfig({ base:"/github仓库名称/", outDir:"docs", 
})

1、解释下:base;如果你的仓库名称是ssg,修改base为"/ssg/" 打包后的html里的各种资源路径会自动加上"/ssg/"前缀 如:

<link rel="stylesheet" href="/ssg/style.css">
部署后的请求则是
https://用户名.github.com/ssg/style.css如果为"/" 则,
<link rel="stylesheet" href="/style.css">
部署后的请求css路径就是
https://用户名.github.com/style.css //报错

2、解释下:outDir;outDir:"docs"的作用是打包后的文件放在根目录docs中 如果是outDir:"dist/demo" 则打包后的文件放在dist/demo中

然后执行npm run docs:build 会在根目录下生成docs目录,里面就是打包后的文件,这个文件是一定要提交到仓库的

三、vite/webpack项目,和vitepress部署一样的(使用/docs),再加一种方式(/root)

1、如果用/docs部署,改造打包后的产物,在vite.config.ts文件中添加,打包,提交代码,使用/docs方式发布

//vite
export default defineConfig({base:"/github仓库名/",build: {outDir: "docs",},
})

webpack

//webpack.config.js
const path = require('path');module.exports = {// 等价于Vite的base选项output: {publicPath: '/github仓库名/',path: path.resolve(__dirname, 'docs'), // 等价于Vite的outDir},
};

vuecli脚手架

vue.config.js
module.exports = {// 等价于Vite的base选项publicPath: '/github仓库名/',// 等价于Vite的outDir选项outputDir: 'docs',
};

2、用/root部署

改造打包后的产物,注意这里的outDir是build

//vite
export default defineConfig({base:"/github仓库名/",build: {outDir: "build",},
})

安装插件

npm i gh-pages -D

添加命令

"scripts": {"deploy": "gh-pages -d build"},

解释下这个deploy命令的作用是啥

1.把build文件夹下的文件全部复制到gh-pages分支下

2.把gh-pages分支下的文件推送到github仓库

然后依次执行npm run build,npm run deploy

执行后会有如下代码,说明发布成功了

$ npm run deploy> vite-web@0.0.0 deploy
> gh-pages -d buildPublished

查看仓库会多出一个分支gh-pages,里面全是干净的打包的后(html,css,js)文件

然后就可以使用root发布了

http://www.xdnf.cn/news/1081207.html

相关文章:

  • XILINX Kintex 7系列FPGA的全局时钟缓冲器(BUFG)和区域时钟缓冲器(BUFR/BUFH)的区别
  • hello判断
  • WPF学习笔记(23)Window、Page与Frame、ViewBox
  • 「Java案例」鸡兔同笼问题
  • [Linux]内核如何对信号进行捕捉
  • JavaWeb笔记05
  • 论文解读:《DeepGray:基于灰度图像和深度学习的恶意软件分类方法》
  • 408第三季part2 - 计算机网络 - 计算机网络基本概念
  • FastAPI 小白教程:从入门级到实战(源码教程)
  • 学习者的Python项目灵感
  • WPF 右键菜单 MenuItem 绑定图片时只显示最后一个 Icon
  • 【python实用小脚本-128】基于 Python 的 Hacker News 爬虫工具:自动化抓取新闻数据
  • 第二章-AIGC入门-开启AIGC音频探索之旅:从入门到实践(6/36)
  • 玩转n8n工作流教程(一):Windows系统本地部署n8n自动化工作流(n8n中文汉化)
  • 【基础算法】贪心 (二) :推公式
  • 基于大模型的强直性脊柱炎全周期预测与诊疗方案研究
  • 算法学习笔记:6.深度优先搜索算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
  • 风平浪静、无事发生
  • 八股学习(三)---MySQL
  • 【C语言刷题】第十天:加量加餐继续,代码题训练,融会贯通IO模式
  • 类图+案例+代码详解:软件设计模式----原型模式
  • WPF+HelixToolkit打造炫酷自定义3D贴图立方体盒子模型
  • goole chrome变更默认搜索引擎为百度
  • 篇二 OSI七层模型,TCP/IP四层模型,路由器与交换机原理
  • SpringBoot-规划多模块目录结构
  • 从0开始学习R语言--Day38--辛普森多样性指数
  • Nuxt 3 面试题合集(中高级)
  • vue3 获取选中的el-table行数据
  • 浅谈 webshell 构造之如何获取恶意函数
  • 「AI产业」| 《中国信通院华为:智能体技术和应用研究报告》