我有一个Rails应用程序,我想添加一个博客功能;我的想法是使用Jekyll这是一个很棒的博客工具,我只需要弄清楚是否可以使用http://my.app.com/blog作为网址(知道Jekyll将使用自己的网址运行自己的服务器进程)。
有人知道如何实现这一目标吗?能够做到这一点真是太棒了。最好的问候!
答案 0 :(得分:21)
...只需要弄清楚是否可以使用http://my.app.com/blog 作为一个url(知道Jekyll将使用自己的url运行自己的服务器进程)。
当jekyll的网络服务器工作时,使用rails应用程序的网络服务器为所有页面提供服务可能更容易,更简单,更安全。
执行所需操作的最简单方法是hooking对服务器的git存储库进行jekyll调用,因此每次推送时,jekyll的静态内容会自动添加到rails应用程序的public/blog/
目录中。
public/blog
文件夹中创建名为public
的符号链接。指向生成的jekyll存储库的_site
文件夹。在控制jekyll博客内容的git存储库中,添加执行以下操作的post-receive hook:
#!/bin/sh
rm -rf _site
jekyll
这些是基本步骤。您可能必须正确配置读取权限,如果您正在使用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。