Могут ли приложение Rails и блог Jekyll жить вместе? - PullRequest
26 голосов
/ 04 января 2011

У меня есть приложение Rails, и я хочу добавить функцию блога;моя идея состоит в том, чтобы использовать Jekyll, который является отличным инструментом для блогов, мне просто нужно выяснить, возможно ли использовать http://my.app.com/blog в качестве URL (зная, что Jekyll будет запускать свой собственный серверный процесс со своим собственным URL).1003 *

Кто-нибудь знает способ сделать это?Было бы здорово иметь возможность сделать это.С наилучшими пожеланиями!

Ответы [ 4 ]

21 голосов
/ 05 января 2011

... просто нужно выяснить, можно ли использовать http://my.app.com/blog как URL (зная, что Jekyll будет запускать свой собственный серверный процесс со своим собственным URL).

Хотя веб-сервер jekyll работает, возможно, будет проще, проще и безопаснее использовать веб-сервер вашего приложения rails для обслуживания всех страниц.

Самый простой способ сделать то, что вам нужно, это перехват вызова jekyll в git-репозитории вашего сервера, поэтому статическое содержимое jekyll автоматически добавляется в каталог public/blog/ вашего приложения rails каждый раз, когда происходит push.

  1. Создайте ссылку Symbolink под названием public/blog в папке public вашего приложения. Сделайте так, чтобы он указывал на сгенерированную папку _site вашего репозитория jekyll.
  2. В репозиторий git, управляющий содержимым блога jekyll, добавьте ловушку после получения , которая выполняет следующие действия:

    #!/bin/sh
    
    rm -rf _site
    
    jekyll
    

Это основные шаги. Возможно, вам придется правильно настроить разрешения на чтение, проигнорируйте / blog / link, если вы используете SCM (как вы должны), и автоматизируйте создание ссылки, если вы используете Capistrano или Vlad для развертывания.

Существуют и другие альтернативы, такие как использование реальной папки вместо символической ссылки и непосредственное генерирование jekyll материалов, но я чувствую, что представленная мной информация является самой чистой.

7 голосов
/ 04 января 2011

Вы бы использовали nginx для обратного прокси-приложения Rails? Если это так, вы можете просто вырезать исключение, чтобы nginx обслуживал /blog напрямую, а не перенаправлял в Rails.

4 голосов
/ 17 марта 2013

Проверьте этот драгоценный камень: https://github.com/zbruhnke/bloggy

И этот пост в блоге об этом: https://blog.engineyard.com/2012/introducing-bloggy-a-simple-way-to-add-a-jekyll-blog-to-any-rails-application

2 голосов
/ 08 мая 2014

У меня была такая же проблема несколько недель назад.Если вам действительно нужно использовать Jekyll, я думаю, что лучшим решением будет использование уже упомянутого Bloggy gem.

Однако я не был удовлетворен этим решением, потому что вам все равно придетсядублировать или синхронизировать множество вещей, таких как шаблоны, маршруты, таблицы стилей и так далее.Поэтому я решил реализовать свой собственный простой Jekyll-подобный блог в Rails.

Вы можете найти мою статью, описывающую реализацию здесь: Создать простой Jekyll-подобный блог в своем приложении на Rails 4 .

...