Rails应用程序和Jekyll博客可以一起生活吗?

时间:2011-01-04 16:58:30

标签: ruby-on-rails blogs jekyll

我有一个Rails应用程序,我想添加一个博客功能;我的想法是使用Jekyll这是一个很棒的博客工具,我只需要弄清楚是否可以使用http://my.app.com/blog作为网址(知道Jekyll将使用自己的网址运行自己的服务器进程)。

有人知道如何实现这一目标吗?能够做到这一点真是太棒了。最好的问候!

4 个答案:

答案 0 :(得分:21)

  

...只需要弄清楚是否可以使用http://my.app.com/blog   作为一个url(知道Jekyll将使用自己的url运行自己的服务器进程)。

当jekyll的网络服务器工作时,使用rails应用程序的网络服务器为所有页面提供服务可能更容易,更简单,更安全。

执行所需操作的最简单方法是hooking对服务器的git存储库进行jekyll调用,因此每次推送时,jekyll的静态内容会自动添加到rails应用程序的public/blog/目录中。

  1. 在应用的public/blog文件夹中创建名为public的符号链接。指向生成的jekyll存储库的_site文件夹。
  2. 在控制jekyll博客内容的git存储库中,添加执行以下操作的post-receive hook

    #!/bin/sh
    
    rm -rf _site
    
    jekyll
    
  3. 这些是基本步骤。您可能必须正确配置读取权限,如果您正在使用SCM(如您所愿),请忽略/ blog / link,如果您使用Capistrano或Vlad进行部署,则自动创建链接。

    还有其他选择,例如使用真实文件夹而不是符号链接,并且让jekyll直接在那里生成内容,但我觉得我呈现的那个是最干净的。

答案 1 :(得分:7)

您是否会使用nginx反向代理Rails应用程序?如果是这样,您应该只能创建一个例外,以便{nginx直接提供/blog而不是转发给Rails。

答案 2 :(得分:4)

答案 3 :(得分:2)

几个星期前我遇到了同样的问题。如果你真的必须使用Jekyll,我认为最好的解决方案是使用已经提到的Bloggy gem。

但是,我对此解决方案并不满意,因为您仍然需要复制或同步很多内容,例如模板,路由,样式表等。所以我决定在Rails中实现我自己简单的类似Jekyll的博客功能。

您可以在此处找到我的描述实施的文章:Create a simple Jekyll-like blog in your Rails 4 app