0%

Hexo Github+Coding 双线部署(已废弃,Coding已不支持免费部署)

起因

本来在【关于】页挂了个终末之诗,觉得写得很好想分享出去看看。

结果别说看了,别人打开 GitHub 部署的静态网页完全就是 404!用久了传送门都忘掉了 GitHub 是带墙的 ... 只能保存了个没有样式的 html 发过去。

一开始还以为是个别连不上,因为我自己裸连虽然慢了点也能上。后来发现好像是因为上海的网墙矮一点??之前在上海也是能裸连 R6 服务器,回江西那是完全登不上的那种。

所以想着再在国内代码托管平台部署一个了。毕竟虽然没有人看,但偶尔想分享的时候也太不方便了= =

配置

单独配置其中任何一个平台的话,在前面的博客里写的很详细了,默认已经配置好了 GitHub 哈,介绍一些双线部署的小问题。

hexo _config.yml 配置

这里主要注意 deploy 字段:

1
2
3
4
5
6
7
deploy:
- type: git
repo: 仓库地址
branch: master
- type: git
repo: 仓库地址
branch: master

要同时往两个仓库部署,需要用-号语法。同时请注意严格遵守缩进规则。

Coding 配置

注意 Coding 新建一个仓库后,默认是没有打开部署服务的。因此要去 项目设置->项目与成员->功能开关->持续部署这里开启静态页面相关功能。

之后可以在仓库的持续部署下找到静态网站功能了。去网站设置里保存一下相关设置即可,最好能打开强制 HTTPS。

至于其他博客说的什么仓库名项目名网站名要和用户名一样,我是没感觉到有必要性 ... 毕竟名字至少肯定不影响 push,而静态网页的地址最后都是被分配".com"网址,也想不出和名字有啥关系。

GitHub 和 Coding 的路由区别

如果之前在 GitHub 随便创个普通仓库部署的静态网页,这时候就会出现问题。我后来才知道,GitHub Pages 分个人主页项目主页

  • 个人主页 user.github.io
  • 项目主页 user.github.io/xxxx

普通仓库的 GitHub Pages 是项目主页,因此网址是次级网址,再加上之前在 hexo 配置的root相关字段,hexo 加载资源什么的都是以 “/xxxx” 为根目录去查找的。

然而 Coding 给的是一级域名,此时部署到 Coding 的页面也是会以“/xxxx”为根目录进行加载资源,显然就会出错了,直接体现就是 main.css 无法加载,F12 调试看可以发现是 main.css 的路径错误。

然而在没有自定义域名的情况下,两边都不允许更换主次级域名,这时候发现GitHub有分个人主页这个东西 ...

GitHub 个人主页 顶级网址

普通的仓库名建出来的都是项目主页,是次级网址。GitHub有两个仓库名比较特殊:

  • user 这个是彩蛋仓库,它的readme.md会显示在GitHub个人资料页
  • user.github.io 这个是我们要的,顶级网址仓库。

创建名为user.github.io的仓库,user 是账户名,比如我需要的仓库名就是 alobal.github.io

此时去开启GitHub Pages 可以发现域名就是 user.github.io 了,重新调整hexo对GitHub的相关部署即可。

记得hexo _config.yml 中设置 root: /

成功部署

调整相关配置和仓库后,可以轻松验证两边都配置成功了。当然,如果你删了GitHub的旧仓库,假如以前有页间引用的绝对路径链接..此时都会失效。自己酌情考虑要不要清空吧。

另外hexo _config.yml中有一个 url 字段,设置的是网页访问网址,而且好像只能设置一个,但又没影响双线不同网址的部署,不知道有什么用= =可能是作为一种可选引用变量吧