今天自己的阿里云的轻量级云服务器即将到期,准备去续费,发现续费的时候没有学生优惠了。一个月的话就要个几百元,对于我来说这毫无疑问是一种非常大的支出,非常得不偿失。所以,今天做了一个非常重要的决定,就是将自己的小站托管到国外的网站托管服务上。

GitHub Pages 虽然是一个很好的选择,不过,它绝大多数时候是抽风的状态。所以我选择 Vercel 来将自己的个人站点进行托管,加上自己的站点经过了 CDN 的加速,访问速度应该不会受到太大的影响。

先赶紧给它办完,后期的小学期的事情又会多起来。😇😇

website-migrate

会计一定能过的 🤗

会计一定能过的 🤗

会计一定能过的 🤗

会计一定能过的 🤗

迁移到 Vercel

Vercel 需要用你的 GitHub 账号,GitLab 账号来进行绑定。这样就可以正常的将仓库中的代码直接自动部署到 Vercel 上面了

选择模板

登录到 Vercel ,创建一个项目并且选择一个模板。我的小站是由 Hexo 来进行构建的,所以就选择 Hexo 就好了。

website-migrate

选择个人账户,下一步。

website-migrate

输入 GitHub 的仓库名并设置为私有。毕竟那些源文件还是不想让别人看到。嘿嘿。

website-migrate

然后点击部署,对啦。项目名可以修改的

QQ截图20210625001851

等待部署完。

QQ截图20210625001851

部署完成之后,就可以访问我们的 Demo 界面了。

QQ截图20210625001851

克隆仓库

先将 GitHub 上的自动生成的给克隆下来,使用 git clone https://github.com/xxxxxxx 将仓库上的代码下载下来。

由于自己之前有一个 gitee 的公钥,所以还要再添加一个。添加 SSH 公钥可以看看这里 – 如何管理你的多个 SSH key

添加完成之后就可以正常的克隆下来了。然后我又重新试了提交,也是能正常的使用,不过很奇怪的是我在执行 ssh -T BestGuo2020@github.com 说连接被拒绝,好奇怪 🤔🤔

$ ssh -T BestGuo2020@github.com
BestGuo2020@github.com: Permission denied (publickey).

不过这没关系,能够提交就好了。

修改一些东西

由于克隆下来的,如果将我原有的日志全部复制到那个我 clone 下来的项目中,有点浪费时间。所以直接将 clone 下来的项目,复制几个文件或者文件夹即可。

QQ截图20210625094335.png

当然, _config.yml 这个配置文件需要打开,将我原来项目中的 _config.yml 这个配置文件进行一个对照还是需要修改的。主要还是在部署的地方,我们就按照从仓库中拉取下来的部署去配置即可。

下面是我原来的配置

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repo: git@xxxxxxxxxx:/home/git/xiaohehe_site
  branch: master

现在要改成这样

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type:

嗯🤔,还要将 .git 的文件夹、.gitignore 和 .vercelignore 给复制到我的原项目中。

部署阶段

最后可以开始提交代码到远程仓库了。不过我在提交到远程仓库的时候会出现一个问题。下面是控制台输出的警告。这个警告是我的 git 项目中还有一个 git 项目,所以就出现了这个警告。

因为 Hexo 的第三方主题也是一个 git 项目。

hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint: 
hint:   git submodule add <url> themes/yun
hint: 
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint: 
hint:   git rm --cached themes/yun
hint: 
hint: See "git help submodule" for more information.

所以需要做的是,先清空暂存区中的 themes/yun ,然后将 yun 这个文件夹给添加进来。

git rm --cached themes/yun
git add themes/yun/

解决办法参照于 git仓库包含子仓库时,add报错的解决办法

然后我们提交试试看,看看能不能正确的部署成功。

QQ截图20210625102537.png

看起来是部署成功了,但是很多日志中的图片都没有全部展示出来。然后再 Vercel 的日志(部分内容)中发现这些图片的链接被指向了一个未知的地方。

11:15:23.350  	update link as:-->/.top//2007786.jpg
11:15:23.352  	update link as:-->/.top//QQ%E6%88%AA%E5%9B%BE20210419200043.jpg
11:15:23.352  	update link as:-->/.top//QQ%E6%88%AA%E5%9B%BE20210419201526.jpg
11:15:23.353  	update link as:-->/.top//QQ%E6%88%AA%E5%9B%BE20210419201708.jpg
11:15:23.353  	update link as:-->/.top//QQ%E6%88%AA%E5%9B%BE20210419203658.jpg
11:15:23.353  	update link as:-->/.top//QQ%E6%88%AA%E5%9B%BE20210419203715.jpg
11:15:23.353  	update link as:-->/.top//QQ%E6%88%AA%E5%9B%BE20210419205135.jpg
11:15:23.353  	update link as:-->/.top//QQ%E6%88%AA%E5%9B%BE20210419205204.jpg

后面这个问题被我困扰了半天,头都秃了😭😭😭,然后后面据我所知,这个问题是 hexo-asset-tag 这个插件有问题,这个插件在两年前就已经提出。具体请看这个 GitHub 上的 issue

但是、但是,我还发现别人已经把修改好的版本上传到 GitHub 并且能够使用 npm 来安装。太对了哥,哥太对,哈哈哈哈哈哈哈,我还以为没救了。所以,在 package.json 中的 dependencies 的 hexo-asset-image 的依赖改成如下所示。

{
    "dependencies": {
        "@bwqdxxg/hexo-asset-image": "^0.1.1",
        "hexo": "^5.0.0",
        "hexo-deployer-git": "^3.0.0",
        "hexo-generator-archive": "^1.0.0",
        "hexo-generator-category": "^1.0.0",
        "hexo-generator-index": "^2.0.0",
        "hexo-generator-tag": "^1.0.0",
        "hexo-render-pug": "^2.1.4",
        "hexo-renderer-ejs": "^1.0.0",
        "hexo-renderer-marked": "^4.0.0",
        "hexo-renderer-stylus": "^2.0.0",
        "hexo-server": "^2.0.0",
        "hexo-tag-aplayer": "^3.0.4",
        "hexo-theme-landscape": "^0.0.3"
 	}
}

改完之后,然后我们重新上传到 GitHub 上让他自动部署看看图片能否正常显示。看,图片可以正常的显示了。

然后我们再看看 Vercel 的日志输出情况(部分内容),发现图片的指向已经正常了。

16:28:21.331  	update link as:-->/2021/04/19/How-do-you-configure-ssh-in-your-pc/2007786.jpg
16:28:21.334  	update link as:-->/2021/04/19/How-do-you-configure-ssh-in-your-pc/QQ%E6%88%AA%E5%9B%BE20210419200043.jpg
16:28:21.334  	update link as:-->/2021/04/19/How-do-you-configure-ssh-in-your-pc/QQ%E6%88%AA%E5%9B%BE20210419201526.jpg
16:28:21.334  	update link as:-->/2021/04/19/How-do-you-configure-ssh-in-your-pc/QQ%E6%88%AA%E5%9B%BE20210419201708.jpg
16:28:21.334  	update link as:-->/2021/04/19/How-do-you-configure-ssh-in-your-pc/QQ%E6%88%AA%E5%9B%BE20210419203658.jpg
16:28:21.334  	update link as:-->/2021/04/19/How-do-you-configure-ssh-in-your-pc/QQ%E6%88%AA%E5%9B%BE20210419203715.jpg
16:28:21.334  	update link as:-->/2021/04/19/How-do-you-configure-ssh-in-your-pc/QQ%E6%88%AA%E5%9B%BE20210419205135.jpg
16:28:21.335  	update link as:-->/2021/04/19/How-do-you-configure-ssh-in-your-pc/QQ%E6%88%AA%E5%9B%BE20210419205204.jpg

此时,小站已经成功迁移到代码仓库中。

提升访问速度

说到给自己的网站加速,就可以使用 CDN 来进行加速。如果使用国内的 CDN 的话,那么需要将你要加速的网站进行 ICP 备案才能使用国内的 CDN 服务。

我自己的小站是有经过 ICP 备案并且使用某拍云进行加速。这也对境内的用户也非常好的,访问速度也会非常的快。

回源出现问题

不过我今晚又试了试,发现又拍云在回源到 Vercel 的时候,回源不了。绝了呀😢😢

看来只好先 Vercel 作为自己的备用站点,只好用 GitHub Page 配合 CDN 来作为主站点了。

部署到 GitHub Page

以后,GitHub Page 就将是我的主站了。

GitHub Pages 需要将代码仓库公开才能够使用。先创建一个名字为 BestGuo2020.github.io 的仓库,这是一个固定的规则。然后又需要改一改 _config.yml 的配置文件

deploy:
  type: git
  repo: git@github.com:BestGuo2020/BestGuo2020.github.io.git
  branch: master

最后使用 hexo d,将 .deploy_git 中的代码给 push 到该仓库中。push 完成之后就能看到这里面的内容了。

设置一下 A 记录,我的根域名还没有利用到,就将我的根域名 bestguo.top 指向到 GitHub page 中的一个 ip 地址。

然后在 GitHub Page 仓库中的设置里面,自定义域名,这里设置的域名类似于跳转到 www.bestguo.top 这个网页这个意思吧。比如我输入 bestguo.top 就会自动重定向到 www.bestguo.top

待他自动部署完成之后,再次访问,可以正常使用 https://www.bestguo.top 访问了,使用这些 http://bestguo.top、https://bestguo.top 都将会自动重定向到最前面的域名。

最后的收尾工作

突然想到一个更简化的操作,在提交整个源项目到 GitHub 的时候会自动构建嘛,所以这个时候在他自动构建的时候执行一下 hexo deploy 命令,就可以将 .deploy_git 中的文件推送到 GitHub Pages 中,这样应该是能行的。试试看。

行吧,他居然报错了。因为 Vercel 中没有私钥呀,所以再部署到 GitHub Pages 中时,才会爆出严重的错误。

QQ截图20210625221716

看来目前要提交两次,一个是 GitHub Pages,另外一个是 Vercel 了。

奇怪的 404

当我点开我写的文章时,突然就 404 了。

QQ截图20210625224356

百度了解了一下,需要将 CNAME 文件放到我们的 source 目录下就好了。

QQ图片20210625230445

最后访问一下,可以正常的显示出来了。

QQ截图20210625230650

好了,小站迁移完成,将阿里云的源站进行关闭,站点迁移工作已经全部结束了。

弄了一天了,我也该歇会儿了😪😪😪。

后记

主站:https://www.bestguo.top | https://bestguo.top

备用:https://blog.bestguo.top | https://bestguo.vercel.app/

参考: