我有一个 Rails 应用程序,我想添加一个博客功能;我的想法是使用 Jekyll,这是一个很棒的博客工具,我只需要弄清楚是否可以使用http://my.app.com/blog作为 url(知道 Jekyll 将使用它运行自己的服务器进程)自己的网址)。
有人知道实现这一目标的方法吗?能够这样做真是太好了。最好的祝福!
我有一个 Rails 应用程序,我想添加一个博客功能;我的想法是使用 Jekyll,这是一个很棒的博客工具,我只需要弄清楚是否可以使用http://my.app.com/blog作为 url(知道 Jekyll 将使用它运行自己的服务器进程)自己的网址)。
有人知道实现这一目标的方法吗?能够这样做真是太好了。最好的祝福!
...只需要弄清楚是否可以使用http://my.app.com/blog 作为 url(知道 Jekyll 将使用自己的 url 运行自己的服务器进程)。
虽然 jekyll 的 Web 服务器可以工作,但使用 Rails 应用程序的 Web 服务器为所有页面提供服务可能会更容易、更简单、更安全。
做你想做的最简单的方法是将 jekyll 调用挂钩public/blog/
到服务器的 git 存储库,因此每次推送时,jekyll 的静态内容都会自动添加到你的 rails 应用程序目录中。
public/blog
在您的应用程序public
文件夹中创建一个名为符号链接的链接。使其指向_site
您的 jekyll 存储库的生成文件夹。在控制 jekyll 博客内容的 git 存储库中,添加执行以下操作的post-receive 挂钩:
#!/bin/sh
rm -rf _site
jekyll
这些是基本步骤。您可能必须正确配置读取权限,如果您使用 SCM(就像您应该的那样)忽略 /blog/ 链接,如果您使用 Capistrano 或 Vlad 进行部署,则自动创建链接。
还有其他选择,比如使用真正的文件夹而不是符号链接并让 jekyll 直接在那里生成东西,但我觉得我展示的那个是最干净的。
你会使用 nginx 反向代理 Rails 应用程序吗?如果是这样,您应该能够只排除一个异常,因此/blog
由 nginx 直接提供服务,而不是转发给 Rails。
几周前我遇到了同样的问题。如果你真的必须使用 Jekyll,我认为最好的解决方案是使用已经提到的Bloggy gem。
但是,我对这个解决方案并不满意,因为您仍然需要复制或同步很多东西,例如模板、路由、样式表等。所以我决定在 Rails 中实现我自己的简单的类似 Jekyll 的博客功能。
你可以在这里找到我描述实现的文章:在 Rails 4 应用程序中创建一个简单的 Jekyll 式博客。