Rails 辞旧迎新之际, 我给博客换了新装

rina · 2017年12月18日 · 最后由 babyhai 回复于 2018年01月11日 · 2843 次阅读

2015 年 3 月份我用 Rails 写了第一个比较完整的项目——首个博客系统,现在回过头来看,觉得很多地方都写的比较烂,今年年初的时候我打算重构自己的博客系统,从一开始的想法到完成整件事,经历了长达一年的时间,原因只有一个——懒。

这个博客的诞生是因为平时在浏览其他网站及关注一些 js 库时发现一些特别喜欢的东西,所以才给了我做这件事的动力。其实做完这个项目真正花费的时间并不多,比较难的是要让自己愿意来做这件事。

整个项目做下来,对我来说,最难的不是技术实现,而是为博客每个主题找到合适的背景图片,简直就是大海捞针。别人给我推荐了这个 图片库,经过长时间的寻找,终于找到了几张让我比较满意的的图片。这个工具不错,有需要的可以收藏一下。

新的博客系统主要功能有:

  • 后端:数据统计,后台文章管理,相册管理,个人简历管理
  • 前端:文章列表,相册展示,时间线等

Demo

项目 Demo 请访问:http://liuzhen.me

项目 github 代码:https://github.com/liuzhenangel/RBlog

核心技术框架

  • Ruby on Rails 5.1.4
  • bootstrap 4
  • font-awesome
  • figaro
  • postgres
  • slim
  • high_voltage
  • carriewave & upyun
  • sidekiq
  • kaminari
  • mina
  • puma
  • lograge
  • simditor
  • turn.js

开发环境准备

第一步,安装项目依赖

$ bundle install

第二步,启动服务

$ rails s

第三步,浏览器访问:http://localhost:3000

结束。

如何发布?

第一步,配置 nginx

先根据项目里的 config/deploy/production.rb, /config/deploy.rb, config/puma.rb, /config/nigix.conf 文件,修改其中的配置,然后将 /config/nigix.conf 文件复制到你的服务器上 nginx 所在目录的 /etc/nginx/conf.d 目录下,命名为 xxx.conf 的文件。然后重启 nginx.

第二步,在服务器上初始化

$ mina setup

第三步,发布

$ mina deploy

学习参考资料

Rails 文档:http://edgeguides.rubyonrails.org/api_app.html

使用模板创建 Rails 项目:https://github.com/80percent/rails-template

ubuntu16.04 安装 rails: https://gorails.com/setup/ubuntu/16.04

simditor 编辑器:http://simditor.tower.im/

startbootstrap-clean-blog 前端样式:https://startbootstrap.com/template-overviews/clean-blog/

sb-admin 前端样式:https://startbootstrap.com/template-overviews/sb-admin/

turnjs 前端样式:http://www.turnjs.com

timeline 前端样式:https://github.com/RyanFitzgerald/vertical-timeline

图片库:https://unsplash.com

引荐 Vue.js 项目

项目 Demo 请访问:http://v2ex.liuzhen.me/

项目代码:https://github.com/liuzhenangel/v2ex_frontend

引荐 React.js 项目

项目 Demo 请访问:http://ruby-china.liuzhen.me/

项目代码:https://github.com/liuzhenangel/react-ruby-china

灰常👍,刚刚涉足前端 vue 不久,发现前后分离项目实在写起来太舒服了

JackyGuo 回复

哈哈,厉害了,给你点个赞👍

我看了你的代码,就是 application.yml 文件里面的参数都要写么?我试了好像只写了 UPYUN_USERNAME,UPYUN_PASSWORD 登录不了 UPYUN_BUCKET,UPYUN_BUCKET_HOST: '' 是?

@babyhai

如果你想把上传的图片信息保存在 UPYUN 上,就配置 UPYUN 的几个参数,然后在 app/uploaders/image_uploader.rb 里把 storage 改为 :upyun, 如果你想保存在本地就不需要配置 UPYUN 的这几个参数。

UPYUN 这几个参数的配置怎么配可以参考这个:https://github.com/nowa/carrierwave-upyun

如果你是在本地测试还需要在 application.yml 里加上 USERNAMEPASSWORD 两个参数,用于 localhost:3000/admin 后台登录。

我是在本地测试的,登录还是提示用户名或密码错误

这样,配置后,重启 rails.

@babyhai

好了 谢谢

rina 回复

是不是生产环境下需要新建.env 文件保存管理员的用户名 密码啊

需要 登录 后方可回复, 如果你还没有账号请 注册新账号