静态网站部署:如何通过GitHub免费部署一个静态网站

news2025/5/25 7:51:17

GitHub提供的免费静态网站托管服务可以无需担心昂贵的服务器费用和复杂的设置步骤,本篇文章中将一步步解如何通过GitHub免费部署一个静态网站,帮助大家将创意和作品快速展现给世界。

目录

了解基础情况

创建基础站点

在线调试站点

前端项目部署

部署存储仓库

取消删除站点

设置404站点

了解基础情况

GitHub Pages是GitHub提供的一项服务,允许用户将静态网页托管在GitHub上,用户可以免费托管HTML、CSS、JavaScript文件快速部署网站,它是GitHub针对开源项目、个人博客、作品集等静态网站提供的托管平台,完全免费且支持自定义域名,使用GitHub免费搭建静态网站,需要提前了解一下使用它的前提及其一些限制,具体详情可以参考官方文档:地址 ,这里不再过多赘述:

从上面官方文档给出的限制来看,GitHub Pages提供免费托管适合个人开发者、小项目或非盈利性项目,静态网站直接托管在GitHub上无需自己配置和维护服务器,但是其也有一些缺点:

1)仅支持静态网站:只能托管静态网页无法直接支持后端应用或动态内容,如果需要数据库、服务器端处理或动态功能,GitHub Pages不是合适的选择

2)存储限制:每个仓库的文件大小限制为100MB且每个用户有一定的带宽限制,因此对于大文件或高流量的网站可能不太适用

3)缺少数据库支持:如果项目需要动态数据存储(例如用户提交表单、评论功能等),GitHub Pages并不提供数据库支持

4)需要手动更新:每次修改和更新网站内容都需要通过Git提交并推送更新,可能不如一些拖拽式网站构建平台(如 Wix、WordPress)方便

5)功能限制:尽管支持Jekyll和一些静态生成器,但相对于其他托管平台GitHub Pages的自定义和扩展功能仍然较为有限,尤其是当需要复杂功能时

这些缺点决定了GitHub Pages更适用于简单的个人网站、项目展示和博客而不适合需要复杂后台处理的应用,总的来说GitHub Pages提供了一个简单、免费的平台帮助开发者和创作者快速部署和管理静态网站,如果你的需求是展示项目、博客或者个人作品集,GitHub Pages是一个理想的选择,接下来我们开始讲解如何部署GitHub Pages。

创建基础站点

在创建基础站点之前,我默认你已经创建好GitHub账户了,如果没有自行访问站点进行注册即可,注册完成之后,点击左上角的新建存储库按钮:

接下来输入仓库的名称以及描述(可选),如果要创建用户或组织站点则存储库必须命名为 <user>.github.io或<organization>.github.io,如果你的用户或组织名称包含大写字母,则添加的必须小写字母,这里我就输入名称进行演示,如下输入完名称之后点击创建存储库即可:

创建完成之后我们点击上传已经存在的文件:

然后将下面的index.html文件拖到上传,上传完成点击提交即可:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .github {
            color: red;
        }
    </style>
</head>
<body>
    <div class="github">hello github pages</div>
</body>
</html>

上传完成之后,我们点击设置按钮找到Pages选项,然后设置我们当前GitHub Pages的分支,在这里我们调整设置了main分支,然后点击Save保存,

然后等待一会刷新一下页面就可以看到我们的站点部署已经成功,然后访问我们的站点就可以看到我们上传的index.html的内容已经被成功的展示在浏览器界面上了:

在线调试站点

我们可以点击代码的Code按钮,然后选择Codespaces打开代码空间,如下所示:

打开之后就给我们展示了一个vscode编辑器的内容,这个编辑器就相当于一台服务器, 当我们修改代码之后可以点击编辑器的左侧分支提交按钮,修改代码然后输入描述点击提交分支即可:

提交完成回到Code选项可以看到我们的代码修改已经成功被提交上来了:

等待一会刷页面之后就可以看到我们的修改的内容也已经同步到站点上了:

前端项目部署

如果想设置Webpack或Vite构建的项目打包部署到GitHub站点上的话,需要考虑一下对资源文件的调用设置,确保文件能够准确的被调用,其处理方法如下所示:

webpack:如果是webpack项目进行打包的话,需要在package.json中添加如下属性,属性值就是我们创建好的GitHub项目名称:

vite:如果是vite项目进行打包的话,需要在package.json中添加如下的打包命令设置,我们在vite build命令后面添加 --base=/项目名称 即可,如下所示:

可以看到打包后的文件内容,都已经在静态资源目录下面添加了我们的项目名称:

接下来我们将打包好的静态资源目录上传到刚刚创建的GitHub仓库当中,如下所示:

然后我们稍微等待一会,等待站点的代码进行更新,过了一会刷新站点之后可以看到我们的站点内容已经变成我们打包好的站点内容了:

部署存储仓库

如果想部署的站点是已经在GitHub上存储的仓库,新建一个仓库然后再打包然后在部署未免有些太过繁琐,这里我们可以通过GitHub的部署工具进行设置,终端执行如下命令安装插件:

npm i gh-pages -D

安装完插件之后我们也是需要调整一下package.json中的命令操作,如下所示:

设置完命令之后,终端执行如下命令进行打包文件夹:

文件打包完成之后执行我们设置的发布命令,如下所示:

回到我们的项目仓库,可以看到我们正准备要发布站点的项目已经成功被写入分支当中:

接下来还是老样子,我们来到仓库的设置界面点击Pages,可以看到当前分支我们发布的项目已经帮助我们配置好了站点内容,这里我们无需在选择分支进行发布了,直接访问站点即可:

可以看到我们的项目也已经成功部署到GitHub站点上了,效果还不错:

取消删除站点

如果想对已经部署的站点进行取消或删除操作的话,可以参考以下内容:

取消站点:取消站点部署仅仅是对当前部署的站点进行删除且该站点将不再可用,但是所有现有存储库设置或内容都不受影响,取消发布站点不会永久删除该站点,我们只需要在已经部署的站点配置页中,点击取消发布站点的按钮即可,如下所示:

取消站点之后再次访问我们的站点链接的话就会看到404界面,如下所示:

如果又想重启已经取消的站点,可以创建新部署,切换一下文本保存方式然后再切换回来然后点击保存即可,后面再访问链接可以看到我们的项目又可以继续访问了:

删除站点:如果想删除站点可以通过两种方式删除站点:

1) 删除存储库:直接将该仓库进行删除即可

2)源更改为None分支:切换项目分支,选择None分支即可

设置404站点

如果想自定义设置部署站点中的404界面的话,非常简单,只需要在部署站点发布来源配置一个404.html或404.md文件即可,在YAML 前页(如果存在)下方添加要在404页面上显示的内容:

---
permalink: /404.html
---

这里我嵌入一个404.html文件试一试,首先我们先随便输入一段内容到站点的url上可以看到默认的404界面的内容:

接下来我们点击项目右上角的添加文件的按钮,然后点击创建新文件:

然后将我们配置的404界面的内容输入其中,然后提交:

接下来输入我们提交的描述信息是添加404界面内容即可:

等待一段时间之后,我们再次访问站点,可以看到我们自定义的404界面生效了:

当然配置GitHub站点还有一些其他操作,博主这里就不再一一再赘述了,感兴趣的朋友可以自行尝试一下吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2385193.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【拯救小狗】2022-1-3

缘由c学校练习试题&#xff0c;求解决-编程语言-CSDN问答 void 拯救小狗() {//缘由https://ask.csdn.net/questions/7622294?spm1005.2025.3001.5141int d 0, g 0, tfh[100][3]{}, x 0, c 10, dd d;std::cin >> d >> g; dd d;while (x < g && d…

PS2025 v26.7 Photoshop2025+AI生图扩充版,支持AI画图

软件下载 【名称】&#xff1a;PS2025 v26.7 Photoshop2025AI生图扩充版 【大小】&#xff1a;4.9G 【语言】&#xff1a;简体中文 【安装环境】&#xff1a;Win10/Win11 【网盘下载链接】&#xff08;务必手机注册&#xff09;&#xff1a; https://pan.quark.cn/s/51f5…

怎么开发一个网络协议模块(C语言框架)之(三) 全局实例

1. gVrrpInstance 是什么? 这是 VRRP 全局控制结构体,命名为 vrrpGlbInstance_t,定义了整个协议运行时的 内核资源、全局状态、各类对象池、AVL 树、计时器、套接字等。 它本质上是一个单例(singleton),用于全局访问 VRRP 实例、资源、统计、socket 等。 vrrpGlbInsta…

ShenNiusModularity项目源码学习(30:ShenNius.Admin.Mvc项目分析-15)

广告管理页面用于新建、维护及删除系统CMS管理模块的广告信息&#xff0c;其后台控制器类AdvListController位于ShenNius.Admin.Mvc项目的Areas\Cms\Controllers内&#xff0c;页面文件位于同项目的Areas\Cms\Views\AdvList内&#xff0c;其中Index.cshtml页面为主页面&#xf…

香港维尔利健康科技集团全面推进AI医疗落地,构建智慧健康管理新模式

在人工智能重塑全球医疗格局的新浪潮中&#xff0c;香港维尔利健康科技集团再次抢占技术高地&#xff0c;宣布正式启动“AI医疗健康场景融合工程”&#xff0c;将人工智能深度嵌入健康管理的全链条服务之中。该计划不仅涵盖设备智能化、诊疗辅助算法、用户健康行为建模等核心环…

选择合适的Azure数据库监控工具

Azure云为组织提供了众多服务&#xff0c;使其能够无缝运行应用程序、Web服务和服务器部署&#xff0c;其中包括云端数据库部署。Azure数据库能够与云应用程序实现无缝集成&#xff0c;具备可靠、易扩展和易管理的特性&#xff0c;不仅能提升数据库可用性与性能&#xff0c;同时…

bi软件是什么?bi软件是做什么用的?

目录 一、BI 软件是什么 1. 基本概念 2. 工作原理 二、BI 软件是做什么用的&#xff1f; 1. 精准洞察市场趋势 2. 优化企业战略规划 3. 辅助投资决策 三、如何选择合适的 BI 软件 1.功能匹配度 2.易用性和可扩展性 3.数据安全和稳定性 4.技术支持和服务 总结 生产…

锐化算子构建方法(机翻)

为了充分利用 GIP&#xff08;通用图像处理单元&#xff09;的并行处理能力&#xff0c;像素组的规模保持较小。每组像素数量的最小化可最大化可并行实现的独立内核数量。理想情况下&#xff0c;若处理单元可获取给定邻域的每个像素值&#xff0c;则内核可完全通用&#xff08;…

算法中的数学:费马小定理

1.同余式 定义&#xff1a;如果两个整数a,b模p的余数相同&#xff0c;那么a,b就是模p的同余式 记作&#xff1a; 性质&#xff1a; 1.同加性&#xff1a;若a和b同时加一个整数&#xff0c;那么他们加完之后的两个数模p仍为同余式 2.同乘性&#xff1a;若a和b同时乘一个整数&…

【Python 算法零基础 4.排序 ③ 插入排序】

目录 一、引言 二、算法思想 三、算法分析 1.时间复杂度 2.空间复杂度 3.算法的优点和缺点 ① 算法的优点 ② 算法的缺点 四、实战练习 1491. 去掉最低工资和最高工资后的工资平均值 思路与算法 ① 插入排序算法 (insertSort 方法) Ⅰ、初始化 Ⅱ、遍历未排序元素 Ⅲ、元素后移…

LangGraph实现多智能体的方法

生活中我们常常需要同时处理多个任务&#xff0c;比如预订旅行时&#xff0c;既要订机票&#xff0c;又要订酒店。如果有一个智能助手能同时帮你搞定这些事情&#xff0c;那该有多方便啊&#xff01;LangGraph的多智能体系统就能做到这一点。它就像一个超级助手团队&#xff0c…

聚铭安全管家平台2.0重磅发布——大模型智驱高效降本新方向

【聚铭安全管家平台2.0正式发布】在数字化安全威胁日益严峻的背景下&#xff0c;聚铭网络创新推出安全管家平台2.0&#xff0c;首创"云端智能区域中台本地终端"三级协同架构&#xff0c;深度融合AI安全大模型技术&#xff0c;实现威胁智能研判与自动化响应。该平台通…

使用注解动态映射:根据实体List列表动态生成Excel文件

我们一般通过POI来生成对应的Excel文件&#xff0c;绝大多数情况是需要手动编写单元格内容&#xff0c;然后顺序填充值&#xff0c;今天我们将动态根据实体来生成Excel表头&#xff0c;同时自动填充内容。 文章目录 1. 定义注解2. 实体类应用注解3. 动态导出工具类 1. 定义注解…

基于cornerstone3D的dicom影像浏览器 第二十一章 显示DICOM TAGS

系列文章目录 第一章 下载源码 运行cornerstone3D example 第二章 修改示例crosshairs的图像源 第三章 vitevue3cornerstonejs项目创建 第四章 加载本地文件夹中的dicom文件并归档 第五章 dicom文件生成png&#xff0c;显示检查栏&#xff0c;序列栏 第六章 stack viewport 显…

【循环位运算——uint32,DP】

题目 代码 #include <bits/stdc.h> using namespace std; using ll long long; using uint unsigned;const int N 1010;ll f[N][N]; uint a[N]; int n, m;int main() {ios::sync_with_stdio(0);cin.tie(0);cin >> n >> m;for(int i 1; i < n; i)cin …

贪心介绍 LeetCode 455.分发饼干 LeetCode 376. 摆动序列 LeetCode 53. 最大子序和

贪心介绍 贪心的本质是选择每一阶段的局部最优&#xff0c;从而达到全局最优。 eg: 有一堆钞票&#xff0c;你可以拿走十张&#xff0c;如果想达到最大的金额&#xff0c;你要怎么拿&#xff1f; 指定每次拿最大的&#xff0c;最终结果就是拿走最大数额的钱。每次拿最大的就…

Postgresql 数据库体系架构

1 postgresql 软件目录 rootu24-pg-110:~# tree -L 1 /usr/local/postgresql-17/ /usr/local/postgresql-17/ ├── bin #可执行二进制文件 ├── include ├── lib └── share 2 数据库目录及文件 #目录结构 base --每个数据库的子目录 global --数据库集簇范…

Vue框架1(vue搭建方式1,vue指令,vue实例生命周期)

一.VUE vue概述(vue.js) vue是前端JavaScript框架,对JavaScript进行封装,是一套用于构建用户界面的渐进式框架.vue的核心只关注图示层,不仅易上手,还便于与第三方库或既有的项目整合. vue.js和Angular.js,React.js一起,并称为前端三大主流框架 注意: 在此初步学习的是vue…

skywalking 10.2 源码编译

1.源码下载 Downloads | Apache SkyWalking 选择 SkyWalking APM 最新版下载&#xff0c; 下载后&#xff0c;在本地解压。 2.Idea加载工程 2.1 根目录pom文件删除checkstyle 插件 后续做二开时避免代码风格校验报错 2.2 删除apm-webapp 工程中 frontend-maven-plugin插件…

C++ --- string

C --- string 简介1、构造函数2、迭代器&#xff08;主流的遍历方式&#xff09;2.1字符串经典遍历和修改的方式2.2使用迭代器遍历和修改字符串2.3使用范围for遍历对象&#xff08;C11支持的新特性&#xff09; 3、常见&#xff0c;常用方法或重载3.1查询大小和容量管理3.2增3.…