技术概述

前端

首先介绍一些重写后的博客整体架构,由于还有很多不确定性,暂时就不放架构图了。前端部分依旧借(co)鉴(py)了之前的blog主题maupassant,只做了部分改动,例如将各个部分的页面抽离出来做成了Jinja2的模板来进行后端渲染,并且也在后端实现了博客分页功能,目前只支持「首页」文章展示的分页以及「归档」处文章展示的分页。由于非常中意博客主题的极简风格,所以前端基本就整体移植过来了,大致样式没有做什么大的改动,这里向博客主题的作者致敬!其实这里我有用Vue重写前端的想法,但介于我蹩脚的前端三脚猫功夫,还是就不献丑了。此外,前端图片的展示,之前用过各种图传,也尝试自己用服务器搭建图传,但最后无一例外链接都失效了,好在发部分图片都有备份,才不至于丢失,这里我对所有的图片进行了整理(后面分享痛苦的整理历程),使用腾讯云对象存储COS服务进行线上存储,配合腾讯云CDN域名加速,直接CNAME到image子域名,由于域名也在腾讯云上,所以整个过程非常快捷。

后端

后端部分使用FastAPI重写,使用Uvicorn启动,异步服务也让博客的访问更加丝滑。这里对之前Hexo博客的路径进行了重写,使用Jinja渲染的模板,包括接下来要说的评论系统也一起集成了进来。整体来看结构并不复杂,但目前的功能更多还是偏向于内容的展示输出,暂时还没有想到比较好的发布方式,这里要交给todo list,后面有时间再去规划如何可以做到丝滑地编写、推送、修改以及管理博客资产信息的方式。部署方式采用了比较便捷的docker化部署,使用docker-compose编排,不复杂,但是相对于之前的静态博客的编写和发布流程,还是要繁琐了很多,但是终归是有一种归属感在里面的,后续也会针对各种功能不断打磨,但目前还不会开源(怕被喷)。

评论系统

之前博客都是使用的第三方评论系统,比如多说、Valine等,但由于第三方评论系统的各种不稳定性,直到有一天我看到的评论区下面这个样子

然后数据什么的也都没了,可能本来评论数据就没有多少,但多次迁移评论系统之后,这次终于让仅存的些许评论也都丢了,这种刀架在脖子上的感觉着实令人难说,更别说是对于一个搞安全的程序猿。所以,我决定自己来实现一个评论系统。目前整个评论系统作为博客的一部分存在,也就是说并没有单独做成一个系统,这里可能后续还是要拆分出去。并且目前也暂时没有考虑留言过长的分页展示问题,这里的工作就留到后面的todo list去吧。其次为了让留言更加美观一点,我给每条留言都做了gravatar头像,由于国内访问gravatar的源存在诸多问题,这里使用了国内源做了代替,并且为每个头像都做了备份,这样即使哪天国内的服务也挂掉,也不至于以前的数据都丢失。其实实现评论系统的过程还是很有意思的,看到了一些非常不错的分享,学到了很多知识,这个后面的章节在做介绍。

好吧,今天太晚了,就先写到这里吧~

为什么要写

balablala

熬夜肝代码的心路历程

balablala

一些心得体会

balablala

todo list

balablala


声明:
文章标题:重写博客后端,全面拥抱云服务
文章作者:h3h3da
文章链接:https://www.liucunzhan.com/p/93615b13-4190-4074-8609-93e381e098e4
文章版权属本博主所有,有问题或者建议欢迎在下方评论。欢迎转载、引用,但请标明作者和原文地址,谢谢。


喜欢,就支持我一下吧~