Подтвердить что ты не робот

Может ли приложение Rails и блог Jekyll жить вместе?

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

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

4b9b3361

Ответ 1

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

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

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

  • Создайте символическую ссылку под названием public/blog внутри вашей папки public. Укажите его в сгенерированную папку _site вашего репозитория jekyll.
  • В репозитории git, который управляет содержимым блога jekyll, добавьте post-receive hook, который делает следующее

    #!/bin/sh
    
    rm -rf _site
    
    jekyll
    

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

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

Ответ 2

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

Ответ 4

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

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

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