不用买服务器,如何用github搭建网站

简介: 不用买服务器,如何用github搭建网站

前言

假设我们现在想要快速建立一个可供外部访问的网站,等不及去买服务器并进行备案(备案的话大概需要一周),此时我们就可以直接在github平台上搭建网站。

在搭建过程中,遇见了很多问题,我这里一一记录下来。

假设目前我们已经建立了一个github仓库,本地也与之进行了关联。那么我们要做的就是下面的事情。

一、部署网站

1.借助gh-pages

1-1.本地项目安装gh-pages

npm install gh-pages
复制代码

1-2.添加并执行部署命令

package.json文件中增加下面部署命令:

"scripts": {
    "deploy": "gh-pages -d build"
  },
复制代码

添加完成之后,先执行项目的打包命令再执行这个部署命令:

yarn build
yarn deploy
复制代码

执行之后我们可以在github远程仓库上可以看到多出了一个gh-pages分支:

网络异常,图片无法展示
|

2.github 进行pages服务

网络异常,图片无法展示
|

这样访问username.github.io/projectName 就可以进入网页了

二、域名映射

在上一步骤中,如果觉得username.github.io/projectName这样的域名不好看,想改成**.com之类的,那么我们就可以用到github的自定义域名功能,但同时我们还需要自己去购买域名。

1.购买域名

域名购买分为国内和国外两种买法,下面是它们两的差别:

国内 国外
支付 啥都行 支付宝
扩展性
备案 需要 不需要
服务器 需要有配套 3 个月租期以上的服务器 不需要
价格 便宜 便宜

其中最大的差别就是国内 需要备案才能使用域名,国外域名则是买了就能用。  现在备案也比较方便了,在小程序里就能完成。

但是一个比较坑的点是,必须要有 3 个租期以上的服务器才能开始备案,而且一台服务器只能为一个域名备案。  所以,会出现花 20 块买域名,但是要花 200 多先租台服务器(3 个月左右)来备案的坑爹情况。

国外购买域名的网站有很多,这里我在NameSilo上买域名:

网络异常,图片无法展示
|

2.DNS配置

NameSilo官网上进入 Domain Manager,进入该域名的DNS设置。

网络异常,图片无法展示
|

2-1.新增4个A记录,配置4个IP地址

185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
复制代码

四个IP地址可以看github doc- Configuring a subdomain

另外再新增2个CNAME记录:

  • www  -  username.github.io 是将www.*.com 映射到 username.github.io
  • projectName - username.github.io 是将www.*.com 映射到 username.github.io/projectName

结果如下:

网络异常,图片无法展示
|

4.gh-pages分支增加CNAME文件

在本地项目中执行了部署命令之后, 然后直接在github上操作,gh-pages分支增加CNAME文件,内容就是刚买的域名(假设为baidu.com)

baidu.com
复制代码

注意不是www.baidu.com,这一步是为了将username.github.io/projectName映射到刚买的域名上。

4.github 设置自定义域名

网络异常,图片无法展示
|

注意:DNS设置那个过程需要等待一段时间才生效,所以如果是设置完DNS之后立马进行了这一步,是不会立即生效的,一般要等待一段时间(当时等待了2h左右,网上说要等待一天)

4.问题排查

我的项目是React搭建的,当上述步骤完成之后去访问网页,发现网页是空白的,但是已经成功映射了,发现是静态文件请求错误,这里就将静态资源的请求地址从绝对位置改为相对位置:

package.json文件里增加:

"homepage": "./"
复制代码

网络异常,图片无法展示
|

相关链接

Github docs - About custom domains and GitHub Pages

# 萌新建站教程(四)namesilo域名解析设置

Github 部署个人网页 | 自定义域名

docs.github.com/en/pages/co…

# Custom subdomains in GitHub project pages

# GitHub Pages 自定义域名实践整理


相关文章
|
弹性计算 关系型数据库 MySQL
阿里云服务器搭建网站教程:经济型e实例2核2G快速搭建网站图文教程参考
目前在阿里云的活动中,轻量应用服务器2核2G3M带宽只要68元1年,2核4G4M带宽只要298元1年。云服务器ECS经济型e实例2核2G 3M固定带宽,价格只要99元/1年,新老用户都可购买,企业用户购买2核4G5M带宽199元一年,为用户提供长期权益。这些都是个人和普通企业用户搭建网站使用较多的云服务器,本文为大家展示使用经济型e实例2核2G3M带宽快速搭建网站的相关教程,以供参考。
1156 18
|
存储 网络安全 PHP
在阿里云服务器上如何搭建网站,网址怎么建站图文教程详解案例及步骤.
做好一个网站不仅需要我们对站点装修及内容发布,也需要我们学会对网站运营,如进行站长推送,将我们内容快速推送到各大搜索平台,有效的让用户能搜索到我们内容,或者需要在谷歌推广就必须对网站添加SSL证书,这样搜索域名的时候搜索框不会出现<不安全>字符在域名前面,以及运行网站要懂运维,出现BUG时要去及时解决查找原因.自始至终自身要不断学习网络相关知识,遇到问题方能迎刃而解. 本文结束,如还有不懂的同学可联系作者,倾力而为,祝您成功!
2737 75
|
存储 人工智能 项目管理
2025年GitHub平台上的十大开源MCP服务器汇总分析
本文深入解析了GitHub上十个代表性MCP(Model Context Protocol)服务器项目,探讨其在连接AI与现实世界中的关键作用。这些服务器实现了AI模型与应用程序、数据库、云存储、项目管理等工具的无缝交互,扩展了AI的应用边界。文中涵盖Airbnb、Supabase、AWS-S3、Kubernetes等领域的MCP实现方案,展示了AI在旅行规划、数据处理、云存储、容器编排等场景中的深度应用。未来,MCP技术将向标准化、安全性及行业定制化方向发展,为AI系统集成提供更强大的支持。
3189 2
2025年GitHub平台上的十大开源MCP服务器汇总分析
|
运维 安全 开发工具
GitHub 热门开源运维工具 Websoft9:如何实现服务器管理效率翻倍?
Websoft9 提供 200+ 开源应用一键部署,支持容器化隔离、GitOps 自动化和企业级安全防护,助力服务器管理效率提升 80%。
560 1
|
关系型数据库 MySQL 持续交付
使用阿里云服务器如何搭建网站?超简单教程!
在阿里云服务器上搭建网站非常简单,尤其是使用轻量应用服务器。只需从应用镜像中选择WordPress镜像,系统将自动安装WordPress及所需环境(PHP、MySQL等)。全过程自动化,无需手动部署。约2-3分钟后,通过服务器公网IP或绑定阿里云域名即可访问和管理网站。详细步骤可参考官方文档。
982 5
|
域名解析 弹性计算 数据可视化
如何使用云服务器ECS搭建网站?阿里云云服务器ECS部署网站新手教程
本文介绍了在阿里云ECS上自助建站的流程。建站方式包括自助建站、模板建站和定制建站,适合个人或小企业用户。建站步骤涉及准备服务器、配置安全组规则、部署网站、购买和备案域名以及解析域名。此外,文章还提及了产品计费和常见问题,提供相关服务如架构设计、迁云服务和基础设置服务等。
1302 0
|
Linux 网络安全 开发工具
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
【超详细!超多图!】【代码管理】Python微信公众号开发(3)- 服务器代码上传Github
639 0
|
弹性计算 Devops 应用服务中间件
3步教你在云服务器上做Github DevOps部署
本文指导您使用阿里云DevOps工具云效,将Github中托管的代码部署在云服务器ECS中,使得用户能够在互联网公网中访问个人应用服务。文章来自云服务器ECS开发实践征文活动用户投稿,已获得作者(昵称秋天)授权发布。
2759 0
3步教你在云服务器上做Github DevOps部署
|
Ubuntu Linux PHP
如何搭建一个GitHub在自己的服务器上?
如何搭建一个GitHub在自己的服务器上?   下面推荐几种好用的工具或者软件:   GitLab支持在Ubuntu/Debian/CentOS上安装,社区版是免费的(Community Edition)https://about.
2098 0
|
11月前
|
人工智能 JavaScript 前端开发
Github 2024-10-28 开源项目周报 Top15
本周GitHub热门项目涵盖Svelte、Open Interpreter、PowerShell等,涉及Web开发、AI助手、自动化工具等领域,Python、JavaScript为主流语言,展现开源技术活跃生态。(239字)
952 19