26

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

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

4

4 回答 4

21

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

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

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

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

    #!/bin/sh
    
    rm -rf _site
    
    jekyll
    

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

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

于 2011-01-05T17:35:26.123 回答
7

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

于 2011-01-04T17:45:33.597 回答
4

看看这个宝石:https ://github.com/zbruhnke/bloggy

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

于 2013-03-17T18:04:02.570 回答
3

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

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

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

于 2014-05-07T22:22:51.143 回答