Railsアプリを持っていて、ブログ機能を追加したいと思います。私のアイデアは、優れたブログツールであるJekyllを使用することです。URLとしてhttp://my.app.com/blogを使用できるかどうかを判断する必要があります(Jekyllが独自のサーバープロセスを実行することを知っています。独自のURL)。
誰かがこれを達成する方法を知っていますか?そうすることができれば素晴らしいと思います。よろしくお願いします!
Railsアプリを持っていて、ブログ機能を追加したいと思います。私のアイデアは、優れたブログツールであるJekyllを使用することです。URLとしてhttp://my.app.com/blogを使用できるかどうかを判断する必要があります(Jekyllが独自のサーバープロセスを実行することを知っています。独自のURL)。
誰かがこれを達成する方法を知っていますか?そうすることができれば素晴らしいと思います。よろしくお願いします!
... http://my.app.com/blogを URL として使用できるかどうかを確認する必要があります (Jekyll は独自の URL で独自のサーバー プロセスを実行することを知っています)。
jekyll の Web サーバーは機能しますが、すべてのページを提供するために Rails アプリの Web サーバーを使用する方がおそらく簡単でシンプルで安全です。
必要なことを行う最も簡単な方法は、サーバーの git リポジトリに jekyll 呼び出しをフックpublic/blog/
することです。これにより、jekyll の静的コンテンツは、プッシュがあるたびに Rails アプリのディレクトリに自動的に追加されます。
public/blog
アプリのpublic
フォルダー内で呼び出されるシンボリック リンクを作成します。_site
jekyll リポジトリの生成されたフォルダーを指すようにします。jekyll ブログのコンテンツを制御する git リポジトリで、次のことを行うpost-receive フックを追加します。
#!/bin/sh
rm -rf _site
jekyll
以上が基本的な手順です。読み取り権限を適切に設定し、SCM を使用している場合は /blog/ リンクを無視し (必要に応じて)、デプロイに Capistrano または Vlad を使用している場合はリンクの作成を自動化する必要があります。
シンボリック リンクの代わりに実際のフォルダーを使用し、jekyll に直接そこに何かを生成させるなど、他の選択肢もありますが、私が提示しているものは最もクリーンだと思います。
Rails アプリのリバース プロキシに nginx を使用しますか? /blog
その場合、 Rails に転送される代わりに nginx によって直接提供されるように、例外を切り出すことができるはずです。
この宝石をチェックしてください: 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 を使用するのが最善の解決策だと思います。
ただし、テンプレート、ルート、スタイルシートなどの多くのものを複製または同期する必要があるため、このソリューションには満足できませんでした。そこで、Jekyll に似た独自のシンプルなブログ機能を Rails に実装することにしました。
実装について説明した私の記事はこちらにあります: Create a simple Jekyll-like blog in your Rails 4 app。