将博客/ CMS集成到Heroku Rails应用程序中

时间:2011-07-17 22:34:52

标签: ruby-on-rails ruby-on-rails-3 heroku

我一直在寻找将博客集成到Heroku上托管的Rails应用程序的各种选项。 Nesta看起来很有前途,但由于它直接在Git 中管理博客文章,每次发布帖子时都会有几分钟的停机时间(由于Heroku的slug编译)看来我在这一点上错了。

是否有任何选项可满足以下所有要求?

  1. 与Heroku的只读文件系统兼容。
  2. 可以集成到现有的Rails 3应用程序中。
  3. 有一个网络界面,所以每次发布帖子时我都不会重新编译。

2 个答案:

答案 0 :(得分:4)

我使用Jekyll,Rack和Heroku来支持我的博客。它对我来说效果很好。

http://nerian.es/2011/07/13/new-website.html

您可以在此处查看代码:

https://github.com/Nerian/nerian.github.com

我会说在Heroku中更新slug时有没有停机时间。在整个过程完成之前,应用程序不会重新启动。然后在准备好之前几秒钟。

你可以试试。将新版本推送到heroku slug并打开许多浏览器选项卡到您的博客。您会注意到停机时间几乎为零。

另一种选择是针对此问题使用面向服务的设计。不是在当前的rails应用程序中集成博客引擎,而是构建一个孤立的博客应用程序所以你的架构看起来像这样:

  • www.yourapp.com - >由您当前的Rails应用程序提供。
  • blog.yourapp.com - >由Jekyll或Sinatra在不同的Heroku部署中提供服务。

这样,当您更新博客时,您的整个网站都可以继续运行。您不会失去一秒钟的重要服务活动。

编辑:

如果您想在当前域中使用端点,而不是子域,则可以将/ blog匹配到为您的博客提供服务的机架应用程序。

http://edgeguides.rubyonrails.org/routing.html#routing-to-rack-applications

答案 1 :(得分:2)

尝试使用Refinery CMS,它在Rails应用程序中作为引擎运行:

http://refinerycms.com/