【问题标题】:Can a Rails app and a Jekyll blog live together?Rails 应用程序和 Jekyll 博客可以同时存在吗?
【发布时间】:2011-06-03 12:46:36
【问题描述】:

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

有人知道实现此目的的方法吗?能够这样做真是太好了。最好的问候!

【问题讨论】:

    标签: ruby-on-rails blogs jekyll


    【解决方案1】:

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

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

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

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

      #!/bin/sh
      
      rm -rf _site
      
      jekyll
      

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        【讨论】:

        • Bloggy 现在看起来是一个死回购。
        【解决方案4】:

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

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

        你可以在这里找到我描述实现的文章:Create a simple Jekyll-like blog in your Rails 4 app

        【讨论】:

          猜你喜欢
          • 2013-08-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-18
          • 1970-01-01
          • 1970-01-01
          • 2012-11-04
          相关资源
          最近更新 更多