起因
本来在【关于】页挂了个终末之诗,觉得写得很好想分享出去看看。
结果别说看了,别人打开 GitHub 部署的静态网页完全就是 404!用久了传送门都忘掉了 GitHub 是带墙的 ... 只能保存了个没有样式的 html 发过去。
一开始还以为是个别连不上,因为我自己裸连虽然慢了点也能上。后来发现好像是因为上海的网墙矮一点??之前在上海也是能裸连 R6 服务器,回江西那是完全登不上的那种。
所以想着再在国内代码托管平台部署一个了。毕竟虽然没有人看,但偶尔想分享的时候也太不方便了= =
配置
单独配置其中任何一个平台的话,在前面的博客里写的很详细了,默认已经配置好了 GitHub 哈,介绍一些双线部署的小问题。
hexo _config.yml 配置
这里主要注意 deploy 字段:
1 | deploy: |
要同时往两个仓库部署,需要用-
号语法。同时请注意严格遵守缩进规则。
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 字段,设置的是网页访问网址,而且好像只能设置一个,但又没影响双线不同网址的部署,不知道有什么用= =可能是作为一种可选引用变量吧