轻松上手:使用 Vercel 部署 HTML 页面教程

😀 在学习前端的过程中,部署项目往往是一个令人头疼的问题。然而,Vercel 为我们提供了一个便捷且免费的解决方案。

Vercel 是一个强大的云平台,专门用于前端项目的部署和托管。它不仅支持多种前端框架和静态网站生成器,还能够自动进行构建和部署,为开发者提供了高效、便捷的开发体验。而且,Vercel 提供了一定的免费额度,每个月有[100G]的免费流量资源,对于学习和小型项目来说已经足够,甚至是个人博客站点也完全可以满足(eg:本博客即部署在Vercel平台)

接下来,我将详细介绍如何使用 Vercel 部署 HTML 页面。

本文示例项目为本人开源项目:

https://github.com/BDTA-zky/GeoWelcome

本文同步更新于个人博客:blog.buzzchat.tophttps://blog.buzzchat.top


一、引言

1.1 Vercel 简介

Vercel 作为现代化的云平台,在前端项目部署方面具有显著优势。它能够快速构建和部署项目,同时保证良好的性能和稳定性。

Vercel: Build and deploy the best web experiences with the Frontend Cloudhttps://vercel.com/

1.2 本教程的主要内容和目标

本教程将引导您完成以下关键步骤:

  1. 准备所需的账号和工具。
  2. 通过两种方式(Git 方式和直接在页面中上传方式)将项目上传至 GitHub 仓库。
  3. 在 GitHub 仓库中添加 vercel.json 文件进行配置。
  4. 将 GitHub 仓库连接到 Vercel 并完成部署。
  5. 解决国内访问的问题,实现域名解析以确保在国内能够正常访问。

二、准备工作

2.1 注册 Vercel 账号

访问 Vercel 官网(https://vercel.com/) ,点击“Sign Up”按钮,使用电子邮件地址进行注册。注册完成后,记得查看验证邮件并进行验证。

2.2 注册 GitHub 账号(若选择使用 Git 上传)

前往 GitHub 官网(https://github.com/),点击“Sign up for GitHub”按钮,按照提示完成注册流程。


三、上传项目至 GitHub 仓库(Git 方式)

3.1 在本地创建包含 HTML 文件及相关资源的项目文件夹

打开您常用的代码编辑器(推荐VS Code),创建一个新文件夹作为项目目录。在该文件夹中,创建一个 HTML 文件(如 index.html),并添加您的 HTML 代码。同时,您还可以添加其他相关资源文件,如 CSS 文件、JavaScript 文件、图片等。

18994f293bf04a6199d3b47aef0c8d78.png

 

3.2 初始化 Git 仓库并进行必要配置

在项目文件夹中,打开终端或命令提示符,执行以下命令:

git init
git add.
git commit -m "Initial commit"
  • git init:用于在当前项目文件夹中初始化一个 Git 仓库,使其可以进行版本控制操作。
  • git add.:将当前文件夹中的所有文件添加到暂存区,准备进行提交。
  • git commit -m "Initial commit":将暂存区的文件提交到本地仓库,并添加一条提交信息"Initial commit",用于描述这次提交的内容。

3.3 将项目推送到 GitHub 远程仓库

在 GitHub 上创建一个新的仓库。然后,在终端或命令提示符中,运行以下命令将本地仓库与远程仓库关联:

git remote add origin <你的 GitHub 仓库 URL>
git branch -M main
git push -u origin main
  • git remote add origin <你的 GitHub 仓库 URL>:将本地仓库与远程的 GitHub 仓库进行关联,其中 <你的 GitHub 仓库 URL> 是你在 GitHub 上创建的仓库的链接。
  • git branch -M main:将本地仓库的当前分支重命名为 main,以保持与 GitHub 仓库默认分支的一致性。
  • git push -u origin main:将本地的 main 分支推送到关联的 GitHub 仓库的 main 分支上,并设置上游分支,以便后续的推送操作更加方便。

四、上传项目至 GitHub 仓库(直接在页面中上传方式)

4.1 在 GitHub 中创建新仓库

登录 GitHub 账号,点击**“New repository”按钮,创建一个新仓库。填写仓库名称、描述等信息后,点击“Create repository”**按钮。

d65adb426cb44152b5d95692b2b4e636.png

4.2 通过网页界面直接上传项目文件

在创建好的仓库页面中,点击“Upload files”按钮,选择本地的项目文件进行上传。您可以上传单个文件或整个文件夹。95b3f07de009497bac355b3d016d31fa.png


五、在 GitHub 仓库中添加 vercel.json 文件

5.1 解释 vercel.json 文件的作用

vercel.json 文件是用于配置 Vercel 项目的重要文件,它可以指定项目的构建选项、路由规则、环境变量等信息,确保项目在 Vercel 上能够正确构建和运行。

5.2 提供 vercel.json 文件的示例内容及配置说明

以下是一个简单的 vercel.json 文件示例:

{
    "version": 2,
    "builds": [
        {
            "src": "index.html",
            "use": "@vercel/static"
        }
    ],
    "routes": [
        {
            "src": "/",
            "dest": "/index.html"
        }
    ]
}

在这个示例中:

  • "version": 2:表示这个vercel.json文件的版本是2。这有助于Vercel识别和正确处理该配置文件。
  • "builds":这个部分用于指定项目的构建信息。
    • "src": "index.html":表示要构建的源文件是index.html。这意味着Vercel会将这个文件作为构建的基础。
    • "use": "@vercel/static":指定了使用@vercel/static构建器来处理构建过程。这个构建器可能会对index.html文件进行一些处理,以确保它能够在Vercel上正确运行。
  • "routes":用于定义路由规则,决定了不同的URL路径如何映射到实际的文件或处理逻辑。
    • "src": "/":表示当访问根路径(即/)时。
    • "dest": "/index.html":表示将根路径的请求重定向到/index.html文件。也就是说,当用户访问您的网站的根目录时,Vercel会将其指向index.html文件,从而显示该文件的内容。

六、将 GitHub 仓库连接到 Vercel 并进行部署

6.1 在 Vercel 平台中关联 GitHub 仓库

登录 Vercel 账号,点击“Import Project”按钮,选择“GitHub”作为导入源。然后,授权 Vercel 访问您的 GitHub 账号,并选择要部署的仓库。

888f14a5f3bb46139d4c266cd1516d3f.png

6cfacdd3bdc24070a8d34e416da3593b.png

6.2 对 Vercel 项目进行设置

导入项目后,您可以对项目进行一些设置,如项目名称、环境变量等。根据实际需求进行相应的配置。(没有其余特殊文件的话,直接修改名字部署即可)

b1bc8ac81a6340f6a554cccbeb3b8982.png

6.3 启动部署过程并监控部署状态

完成项目设置后,点击“Deploy”按钮启动部署过程。Vercel 将自动进行构建和部署,并在部署完成后提供一个访问链接。您可以通过该链接查看您部署的 HTML 页面。eee563f16a0d4bbc990a2eaa9a918be0.png


七、解决国内访问问题 - 域名解析

7.1 教程前需了解的内容

vercel.app 作为一个广泛使用的域名,由于其使用量较大,可能在国内部分地区出现访问受限的情况。为了确保在国内能够顺利访问通过 Vercel 部署的网站,进行域名解析是必要的操作。

域名解析可以帮助我们将自定义的域名与 Vercel 提供的服务进行关联,从而提高国内访问的稳定性和流畅性。

7.2 推荐平台

在进行域名解析之前,您需要先购买一个域名。这里为您推荐两个常用的域名购买平台:

  1. 阿里云:阿里云是国内领先的云服务提供商,其域名服务功能丰富,操作简便。您可以通过访问阿里云域名购买页面来选购您心仪的域名。
  2. 腾讯云:腾讯云也是一个不错的选择,它提供了多种域名后缀可供选择,并且价格相对较为合理。您可以前往腾讯云域名购买页面进行域名购买。

7.3 在 Vercel 控制台添加域名

在 Vercel 控制面板中,依次点击 Settings → Domains → Add,在此处您可以输入您想要绑定的域名。需要注意的是,一个项目可以绑定多个域名。

b4854fc5ec424ce1924776a659c2cf7e.png

当您输入域名并点击 Add 后,如果出现提示(Invalid Configuration),这意味着域名已经成功添加,但还需要您根据提示通过添加 CNAME 或 Nameserver 的方式来激活该域名。

7.4 域名解析

在进行域名解析时,Vercel 官方虽然提供了默认的解析方式,但为了获得更好的国内访问效果,我们推荐使用 Vercel 为国内用户提供的单独的 IP 和 CNAME 地址。这些中国特供的地址能够更快地提升国内用户的访问速度和稳定性。中国特供的地址如下:

<aside> 💡

  • A 记录地址:76.223.126.88 或 76.76.21.98 等
  • CNAME 记录地址:cname-china.vercel-dns.com 

A 记录和 CNAME 记录的区别

  • A 记录:将域名直接指向一个 IPv4 地址。
  • CNAME 记录:将域名作为别名指向另一个域名。

域名解析示例

我购买的域名是 buzzchat.top,现在我将其解析为一个子域名 geowelcome。

d7c4306b2b1f4ea2a07d4420475e7511.png

在域名管理后台,我将主机记录设置为“geowelcome”,记录类型选择“CNAME”,在“记录值”中填入“cname-china.vercel-dns.com”。

通过这样的设置,我以后如果做其他网页,比如 a.buzzchat.top,b.buzzchat.top,都可以重复上述步骤,复用同一个域名 buzzchat.top,只需将主机记录分别设置为“a”和“b”,并按照相同的方式设置 CNAME 记录即可。

7.5 提升 Vercel 站点在国内的访问效率

使用 Vercel 时,可能会遇到在国内访问速度一般且不稳定的情况,尤其是对于部分地区的用户来说,访问可能会受到一定的限制。为了提升 Vercel 站点在国内的访问效率,我们可以采取一些措施。

一种方法是将网站进行备案,然后购买国内服务商的 CDN 服务,如腾讯云的 CDN 或 EdgeOne。这样可以通过国内的节点来加速访问,提高用户的体验。

另一种较为简便的方法是利用一些国人开放的 CDN 项目,例如:

提升部署在cloudflare、vercel或netlify的网站在中国国内的访问速度和稳定性

https://github.com/xingpingcn/enhanced-FaaS-in-China

这些项目可以在一定程度上改善国内访问的速度和稳定性。


八、总结

通过本教程,我们学习了如何使用 Vercel 部署 HTML 页面,并解决了国内访问的问题。希望同学们能够顺利地将自己的前端项目部署到 Vercel 上,为学习和实践提供更好的支持。


💡 有关本篇博客的任何问题、或者任何想法和建议等,欢迎您在底部评论区留言,一起交流~

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

QT从入门到精通(二) ——信号与槽机制

Qt 的信号与槽机制&#xff08;Signal and Slot&#xff09;是 Qt 框架 中用于对象间通信的核心机制之一。它允许对象之间进行松耦合的事件驱动式通信&#xff0c;尤其适合 GUI 应用程序 中的事件处理。 1. 基本概念 信号 (Signal) 当对象的状态发生变化时&#xff0c;它会发…

数据结构:Win32 API详解

目录 一.Win32 API的介绍 二.控制台程序(Console)与COORD 1..控制台程序(Console): 2.控制台窗口坐标COORD&#xff1a; 3.GetStdHandle函数&#xff1a; &#xff08;1&#xff09;语法&#xff1a; &#xff08;2&#xff09;参数&#xff1a; 4.GetConsoleCursorInf…

kubeadm_k8s_v1.31高可用部署教程

kubeadm_k8s_v1.31高可用部署教程 实验环境部署拓扑图**部署署架构****Load Balance****Control plane node****Worker node****资源分配&#xff08;8台虚拟机&#xff09;**集群列表 前置准备关闭swap开启ipv4转发更多设置 1、Verify the MAC address and product_uuid are u…

鸿蒙元服务项目实战:备忘录UI页面开发

前言 之前写过一篇关于元服务项目的上架流程&#xff0c;为了更好的了解及开发元服务&#xff0c;准备从0到1简单开发一个小项目&#xff0c;也希望能够帮助到刚刚介入到鸿蒙开发的同学&#xff0c;具体项目呢&#xff0c;也是十分的简单&#xff0c;就是一个小巧的备忘录项目&…

Linux-ubuntu点LED灯C语言版

​ 一&#xff0c;C语言点灯 1.寄存器配置 设置为SVC模式&#xff0c;复用寄存器设置GPIO1-IO003,设置电气属性&#xff0c;设置为输出模式。 2.软件 汇编语言对模式设置&#xff0c;并且将堆栈指针指向主程序&#xff1a; .global _start_start: /*设置为svr模式 */mrs …

SLM510A系列——24V,15到150mA单通道可调电流线性恒流LED驱动芯片

SLM510A 系列产品是单通道、高精度、可调电流线性恒流源的 LED 驱动芯片&#xff0c;在各种 LED 照明产品中非常简单易用。其在宽电压输入范围内&#xff0c;能保证极高的输出电流精度&#xff0c;从而在大面积的光源照明中&#xff0c;都能让 LED 照明亮度保持均匀一致。 由于…

【JavaEE】网络(2)

一、网络编程套接字 1.1 基础概念 【网络编程】指网络上的主机&#xff0c;通过不同的进程&#xff0c;以编程的方式实现网络通信&#xff1b;当然&#xff0c;我们只要满足进程不同就行&#xff0c;所以即便是同一个主机&#xff0c;只要是不同进程&#xff0c;基于网络来传…

【Java数据类型学习——String】

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” 文章目录 打印字符串长度的两种方法字符串String的比较1.用于比较引用的对象是否指向同一个内存地址2.用equa…

基于Spring Boot的校园部门资料管理系统

一、系统背景与目的 随着信息技术的飞速发展&#xff0c;校园信息化建设成为必然趋势。学校各部门在日常工作中积累了大量的资料&#xff0c;包括教学资料、学生档案、科研成果、行政文件等。传统的纸质资料管理方式存在效率低、易丢失、难以检索等问题&#xff0c;无法满足现…

STL 剖析

STL 六大组件 「STL 六大组件的交互关系」 Container 通过 Allocator 取得数据储存空间Algorithm 通过 Iterator 存取 Container 内容Functor 可以协助 Algorithm 完成不同的策略变化Adapter 可以修饰或套接 Functor、Iterator 配置器(allocator) 配置器&#xff1a;负责空间…

企业网络构建:如何满足业务需求与提升效率

企业组网指通过网络将企业内部的各种设备&#xff08;如电脑、打印机和服务器等&#xff09;连接起来&#xff0c;实现资源共享、信息交流与协同办公的过程。要打造一个高效的企业网络&#xff0c;需要从安全性、可靠性、稳定性和性能等多个方面进行综合考虑。以下内容将详细解…

升级thinkphp8最新版本,升级后发现版本不变

升级thinkphp8.0.3最新版本8.1.1&#xff0c;升级后发现版本不变&#xff0c; 更新TP有两个方法 1 全部更新(所有插件都一起更新) composer update 2 只更新TP框架核心 composer update topthink/framework 造成可能有两个原因&#xff0c;一是缓存问题&#xff0c;二是更新…

Cesium进阶教程——自定义图形、外观、绘图基础、现有着色器移植至Cesium、ShadowMapping、视频GIS、模型压平、卷帘

基础必看 WEBGL基础&#xff08;从渲染管线角度解读&#xff09; 参考路线 http://www.xt3d.online/tutorial/further/article.html 自定义图形 https://blog.csdn.net/m0_55049655/article/details/138908327 https://blog.csdn.net/m0_55049655/article/details/140306837 …

理解数据结构 hashtable的简易理解思路

结构图 为了方便演示&#xff0c;下图中分区算法为下标取模 private int hashFun(int id) {//使用 hash并取模return id % size;}Hashtable的结构如图所示&#xff1a;是一个数组&#xff08;元素为各个链表的表头&#xff09; 多个链表组成&#xff0c;也就是说 hashtable 结…

【YashanDB知识库】kettle同步PG至崖山提示no encryption pg_hba.conf记录

【问题分类】数据导入导出 【关键字】数据同步&#xff0c;kettle&#xff0c;数据迁移&#xff0c;pg_hba.conf 【问题描述】使用kettle同步postgresql至崖山数据库时提示以下报错信息&#xff1a; 【问题原因分析】pg_hba.conf 文件中没有正确配置允许从 IP 地址 连接到数…

记录2024-leetcode-字符串DP

10. 正则表达式匹配 - 力扣&#xff08;LeetCode&#xff09;

UE5制作伤害浮动数字

效果演示&#xff1a; 首先创建一个控件UI 添加画布和文本 文本设置样式 添加伤害浮动动画&#xff0c;根据自己喜好调整&#xff0c;我设置了缩放和不透明度 添加绑定 转到事件图表&#xff0c;事件构造设置动画 创建actor蓝图类 添加widget 获取位置 设置位移 创建一个被击中…

【USB-HID】“自动化键盘“

这里写目录标题 【USB-HID】"自动化键盘"1. 前言2. 框架3. 实现3.1 模拟键盘按键输入 【USB-HID】“自动化键盘” 1. 前言 最近从朋友那了解了一种"自动化键盘"&#xff0c;能够通过上位机录制按键脚本&#xff0c;然后执行脚本&#xff0c;实现物理键盘…

STM32F407ZGT6-UCOSIII笔记4:时间片轮转调度

本文学习与程序编写基于 正点原子的 STM32F1 UCOS开发手册 编写熟悉一下 UCOSIII系统的 时间片轮转调度 文章提供测试代码讲解、完整工程下载、测试效果图 目录 解决上文的卡系统问题&#xff1a; 使能时间片轮转调度&#xff1a; 任务初始化定义更改&#xff1a; 文件结构…

【Flask+OpenAI】利用Flask+OpenAI Key实现GPT4-智能AI对话接口demo - 从0到1手把手全教程(附源码)

文章目录 前言环境准备安装必要的库 生成OpenAI API代码实现详解导入必要的模块创建Flask应用实例配置OpenAI API完整代码如下&#xff08;demo源码&#xff09;代码解析 利用Postman调用接口 了解更多AI内容结尾 前言 Flask作为一个轻量级的Python Web框架&#xff0c;凭借其…