最近几年静态网站生成器越来越流行,像Hexo、Hugo、VuePress这些工具让搭建博客变得异常简单。但很多新手卡在了最后一步——如何把本地写好的网站放到互联网上让大家访问?这时候Gitee Pages就是个绝佳选择。
我最早是用国外某知名代码托管平台的Pages服务,但国内访问速度实在让人抓狂。后来转用Gitee Pages,发现加载速度提升了至少3倍。最让我惊喜的是,它完全免费,不需要自己买服务器,也不需要配置复杂的Nginx,特别适合个人博客、项目文档、作品集这类静态网站。
和需要后端服务的动态网站不同,静态网站只需要HTML、CSS、JavaScript这些前端文件就能运行。Gitee Pages的自动化部署功能,可以让你在代码更新后自动重新生成网站。我帮不少学生部署过毕业设计的前端项目,从创建仓库到网站上线,最快5分钟就能搞定。
首先打开Gitee官网,点击右上角的"注册"按钮。建议直接用手机号注册,比邮箱更方便。注册完成后记得完成实名认证,这是使用Pages服务的必要条件。我在第一次使用时没注意这个要求,结果在最后一步卡了半小时。
注册时有个小技巧:用户名尽量简单好记,因为之后你的个人主页地址会是"用户名.gitee.io"。我见过有人用一长串随机数字当用户名,最后分享链接时特别不方便。
虽然Gitee网页端也能上传文件,但用Git才是专业做法。Windows用户直接下载Git for Windows,安装时记得勾选"Add Git Bash to PATH"这个选项。安装完成后,在任意文件夹右键就能看到"Git Bash Here"的选项。
Mac用户更简单,打开终端输入git --version,如果没安装会提示你安装Xcode Command Line Tools。Linux用户直接用包管理器安装就行,比如Ubuntu是sudo apt install git。
验证是否安装成功:
bash复制git --version
看到版本号输出就说明没问题。
登录Gitee后,点击右上角"+"号选择"新建仓库"。这里有几个关键选项需要注意:
我第一次创建时没注意名称规则,结果访问地址变成了"用户名.gitee.io/仓库名",多了一层路径特别别扭。后来只能删除重建,白白浪费了时间。
仓库创建好后,复制HTTPS链接,在本地找个合适的位置打开Git Bash:
bash复制git clone https://gitee.com/yourname/yourrepo.git
cd yourrepo
这时候本地就会出现一个与仓库同名的文件夹,这就是你的工作目录。所有网站文件都要放在这个文件夹里。
有个常见问题:很多人克隆仓库后,直接把文件扔在根目录外。正确的做法是确保所有网站文件都在仓库文件夹内,否则git无法追踪这些文件。
标准的静态网站至少需要index.html作为入口文件。如果你用的是Hexo等生成器,通常会有这样的结构:
code复制├── index.html
├── css/
│ └── style.css
├── js/
│ └── main.js
└── images/
我建议先在本地测试好网站再上传。用VS Code的Live Server插件或者直接浏览器打开index.html,确保所有资源加载正常。
遇到过最头疼的问题是路径错误。很多新手在本地测试时用相对路径没问题,但上传后图片全挂了。这是因为Pages服务的根路径可能不同,建议所有资源引用都用绝对路径,比如/images/photo.jpg。
文件准备好后,依次执行以下命令:
bash复制git add --all
git commit -m "首次提交网站文件"
git push origin master
第一次push会要求输入Gitee账号密码。如果觉得每次输入密码麻烦,可以配置SSH密钥,具体方法在Gitee帮助文档里有详细说明。
我强烈建议养成写有意义的commit message的习惯。曾经有一次网站出问题需要回退版本,结果发现之前的commit全是"更新"、"修复"这类模糊描述,根本分不清哪个版本是正常的。
文件上传完成后,回到Gitee仓库页面,点击"服务"→"Gitee Pages"。你会看到一个非常简单的界面,只需要选择部署分支(通常是master),然后点击"启动"按钮。
部署通常需要1-2分钟。成功后页面会显示你的网站地址,格式是https://username.gitee.io或https://username.gitee.io/reponame,具体取决于你的仓库命名。
如果你有自己的域名,可以在Pages服务设置里绑定。需要先在域名管理后台添加CNAME记录指向username.gitee.io,然后在Gitee填写域名地址。
这里有个坑要注意:绑定自定义域名后,Gitee会强制开启HTTPS,但证书申请可能需要时间。我遇到过证书没及时生效导致网站无法访问的情况,这时候耐心等半小时左右通常就能解决。
每次手动git push还是有点麻烦,特别是用静态网站生成器的项目。以Hexo为例,可以在项目根目录创建部署脚本:
bash复制hexo clean && hexo generate
cd public
git add --all
git commit -m "更新博客内容"
git push origin master
这样每次写完文章,运行一个命令就能完成从生成到部署的全过程。
Gitee Pages有比较强的缓存机制,有时候更新了内容但访问网站还是旧版本。这时候可以在页面URL后加随机参数强制刷新,比如?v=2。更好的做法是在引用静态资源时加上版本号或哈希值。
我自己的解决方案是用构建工具自动给CSS和JS文件加上时间戳,确保每次更新用户都能获取最新版本。
虽然Gitee很稳定,但重要数据还是要备份。我习惯每周把整个仓库打包下载到本地硬盘,同时同步到其他云存储。万一需要恢复,直接删除现有仓库重新上传备份文件就行。
曾经有朋友因为误操作清空了仓库,又没备份,半年的博客内容全没了。这个教训告诉我们:代码可以重写,但内容一定要备份。