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

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

有人知道实现这个目标的方法吗? 能够做到这一点真是太棒了。 最好的祝福!

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

虽然jekyll的Web服务器可以工作,但使用rails应用程序的web服务器来提供所有页面可能更容易,更简单,更安全。

做你想做的最简单的方法是将 jekyll调用挂钩到服务器的git存储库,这样每次推送时,jekyll的静态内容会自动添加到rails app的public/blog/目录中。

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

     #!/bin/sh rm -rf _site jekyll 

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

还有其他选择,比如使用真正的文件夹而不是符号链接,让jekyll直接在那里生成东西,但我觉得我提出的那个是最干净的。

你会使用nginx反向代理Rails应用程序吗? 如果是这样,您应该能够只创建一个exception,因此/blog直接由nginx提供,而不是转发给Rails。

看看这个gem: https : //github.com/zbruhnke/bloggy

这篇关于它的博客文章: https : //blog.engineyard.com/2012/introducing-bloggy-a-simple-way-to-add-a-jekyll-blog-to-any-rails-application

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

但是,我对这个解决方案并不满意,因为你仍然需要复制或同步很多东西,比如模板,路由,样式表等等。 所以我决定在Rails中实现我自己简单的类似Jekyll的博客function。

你可以在这里找到我的文章描述实现: 在你的Rails 4应用程序中创建一个简单的类似Jekyll的博客 。