00:个人网站部署
本文最后更新于:2024年12月22日 凌晨
花了两三天时间搭了一个用于笔记的个人博客,部署在了 github 上,这里记录一下部署的过程。
选型
网站的建立主要是为了搭一个在公司和家里都能访问的博客环境,对工作和学习做一些记录,所以直接放弃传统的带前端后端的动态页面,时间成本太高,整一个可以一键上传 markdown 的静态页面就挺ok。前端框架采用 hexo,UI选择 fluid,代码放在 github 上,并使用 github action 进行持续集成,部署到 github pages 后,后续写作只需要一次 git push 就可以自动将文章更新到目标网站上。
框架搭建
UI设置
https://hexo.fluid-dev.com/docs/guide/
部署
快速部署
https://hexo.io/zh-cn/docs/one-command-deployment
适用于希望源代码保存在本地而不用上传的情况,相当于本地构建完再将构建好的网页直接推给gh page
需要在 _config.yml 中配置 gh page 的仓库地址和分支,推送后,hexo 会将 public 目录中的文件推送至_config.yml 中指定的分支中,并且完全覆盖该分支下的已有内容。
这就导致了一个问题,由于是只传 public 目录,域名映射需要的CNAME文件只能放到 public 下,这样每次 hexo clean 后会清空 public,还得再编辑一次CNAME,但是好处在于刨除了云端构建的不稳定性,每次可以本地看看网站效果,再直接放到 gh page 中
gh actions 持续集成
https://easyhexo.com/1-Hexo-install-and-config/1-5-continuous-integration.html
源代码放到 user.github.io 仓库中后(仓库名只能设为这个,否则生成网页会变成 user.github.io 的子页),CNAME 放在 source 中,然后在 .github/workflws 中定义 gh actions 的详细配置
采用的hexo官方文档中的配置,最后一步使用 peaceiris/actions-gh-pages@v3 咱也不太懂,参考知乎上的其他配置,大概相当于安装 hexo 完了在将 main 分支的源码 deploy 到 gh-pages 分支上,之后在设置时选择这个分支即可
主要问题在于每次 push 都要重新 build,推测后期内容增多后网站更新会十分不及时,可能需要看看别人的追加更新是咋弄的
CDN加速
更换 Cloudflare 的 DNS,注意 SSL/TLS 加密模式设为严格
增加评论区
一直拖着没弄(本来也没指望有人会评论hhh)朋友推荐选择valine,基本上属于开箱即用了
参考: https://valine.js.org/quickstart.html
Summary
属于我的第0篇博客,大概,能在网站上正常显示,证明基本功能已经ok