Может ли приложение Rails и блог Jekyll жить вместе?
У меня есть приложение Rails, и я хочу добавить функцию блога; моя идея - использовать Jekyll, который является отличным инструментом для блога, мне просто нужно выяснить, можно ли использовать http://my.app.com/blog в качестве URL-адреса (зная, что Jekyll будет работать его собственный серверный процесс со своим собственным URL-адресом).
Кто-нибудь знает, как это сделать? Было бы здорово это сделать. С наилучшими пожеланиями!
Ответы
Ответ 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.
Ответ 3
Посмотрите на этот драгоценный камень: https://github.com/zbruhnke/bloggy
И это сообщение в блоге об этом: https://blog.engineyard.com/2012/introducing-bloggy-a-simple-way-to-add-a-jekyll-blog-to-any-rails-application
Ответ 4
У меня была такая же проблема несколько недель назад. Если вам действительно нужно использовать Jekyll, я считаю, что лучшим решением является использование уже упомянутого Bloggy gem.
Однако я не был удовлетворен этим решением, потому что вам все равно придется дублировать или синхронизировать множество вещей, таких как шаблоны, маршруты, таблицы стилей и т.д. Поэтому я решил реализовать свои собственные простые функции Jekyll-блога в Rails.
Вы можете найти мою статью, описывающую реализацию здесь: Создайте простой блог Jekyll в своем приложении Rails 4.