一个用 golang+mongodb 开发的博客,前后端分离的开发模式

2018-10-19 12:12:37 +08:00
 noxue

gocms 目标

暂时只是开发来自用,后期有空慢慢增加功能。根据名字都知道,是打算开发成一个内容管理平台,目前算是一个简单的博客。

特点

演示

后台效果:

admin.noxue.com

前台效果:

www.noxue.com

gocms 源码

后台 API

前端界面

后台界面

SEO 处理工具

开发语言

后端接口

golang+mongodb,主要用到的库:gin,mgo

前台界面

vuejs, 界面并非原创,模仿 zetcode.com 很早就知道这个网站,一直很喜欢他简洁的风格,上面有很多教程,推荐给大家,不过全是英文的。

后台界面

采用 vue-admin-template 感谢作者为我们提供这么方便的后台管理界面。

seo 处理

前台是 vuejs 开发的 SPA 应用,官方有 SSR 可以解决,不过看了一下要从一开始就使用,我也没深入学过 vuejs,外加项目已经开发好了,所以考虑另辟蹊径。本质就是要搜索引擎获取到渲染后的 html 代码,这东西通过 python 很容易实现,毕竟做爬虫是 python 的强项,于是搜索一番搞定了。

1.用 python 写个接口,返回指定 url 渲染后的 html 代码。

2.nginx 判断 UA,如果是搜索引擎的蜘蛛,就转发到我们 python 的接口上获取渲染后的数据

流程

  1. 如果是正常用户请求,就直接返回前台界面,前台界面自动调用接口返回数据,渲染显示。
  2. 如果是搜索引擎,nginx转发到seo 处理程序,处理程序模拟人去访问前台界面,把渲染后的 html 返回给搜索引擎

公开代码的意义

这是初学 mongodb,第一次用 go 和 mongodb 做的作品,里面很多知识我想很多初学的朋友都会遇到,比如 给子文档添加元素,更新子元素,当初也搜了不少资料。所以这个项目也许可以对需要的朋友有一点帮助。 之所以不是说开源,是因为开源项目不仅有代码还要有配套的文档,所以只能算公开代码而已。

1322 次点击
所在节点    程序员
2 条回复
JASONWOOD
2018-10-19 13:45:20 +08:00
很棒!收藏加学习了
xgp
2018-10-19 13:56:15 +08:00
不错

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/499079

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX