Интеграция Nesta CMS и Rails3: меню не работает - PullRequest
0 голосов
/ 10 сентября 2011

Я уже провел несколько успешных экспериментов по интеграции nesta с rails 3 (см. Возможно ли включить Nesta CMS в приложение Rails3? и Интеграция с Nesta CMS и Rails3: добавление блога в выходящее приложение rails 3)

Но для этого мне понадобилось меню в правой части блога, как описано в « Работа с меню »

Чтобы попробоватьЯ создал известный контент-демонстрационный сайт с nesta demo:content, но все ссылки, появляющиеся справа, которые идут из content-demo / menu.txt, не работают, потому что связаны с основным приложением Rails (http://example.com) а не во встроенный блог nesta (http://example.com/blog)

Вот мои текущие настройки файлов, интеграция между Rails 3.0.10 и Nesta 0.9.10:

config/routes.rb

  match '/blog' => Nesta::App
  match '/css/*style.css' => Nesta::App
  match '/attachments/*file' => Nesta::App
  root :to => "home#index"

ОБНОВЛЕНИЕ:

с использованием mount Nesta::App, :at => '/blog' вместо match '/blog' => Nesta::App богатый тот же результат ...

config / initializers / nesta.rb

require "nesta/env"
require "nesta/app"
Nesta::Env.root = ::File.expand_path("../../nesta-blog", File.dirname(__FILE__))
Nesta::App.root = ::File.expand_path("../../nesta-blog", File.dirname(__FILE__))

nesta-blog / config / config.yml

...
content: nesta-blog/content-demo
...

I thoЭто зависело от того, как Nesta создала относительный путь для меню, и это зависело от метода base_url в nesta-0.9.10/lib/nesta/app.rb.

Чем я пытался распаковать локально nesta-0.9.10, изменив url = "http://#{request.host}" в url = "http://#{request.host}/blog":

  def base_url
    url = "http://#{request.host}/blog"
    request.port == 80 ? url : url + ":#{request.port}"
  end

положить gem 'nesta', :path => 'vendor/gems/nesta-0.9.10' в Gemfile и build update nesta, но нет, неРабота.

ОБНОВЛЕНИЕ:

Также несколько попыток с Nesta::Menu.for_path('/') в ./vendor/gems/nesta-0.9.10/lib/nesta/app.rb

  def set_common_variables
    @menu_items = Nesta::Menu.for_path('/')
    @site_title = Nesta::Config.title
    set_from_config(:title, :subtitle, :google_analytics_code)
    @heading = @title
  end

не дали результатов.

Мой nesta-блог/content-demo/menu.txt в настоящее время не ссылается на домашнюю страницу (как при генерации по умолчанию с nesta demo:content):

marking-up-pages
  examples/using-markdown
  examples/using-textile
  examples/using-haml
  adding-attachments
menu-editing
publishing-a-feed

, и если я попытаюсь поставить что-то вроде:

/ или /blog или /nesta-blog меню исчезают ...

Итак, мой вопрос, как это работает?Есть ли у вас какие-либо предложения / обходные пути?

Заранее спасибо Luca G. Soave

1 Ответ

0 голосов
/ 12 сентября 2011

Вы пытались смонтировать Nesta вместо простого сопоставления маршрута (как описано в Интеграция Nesta CMS и Rails3: добавление блога в выходящее приложение rails 3 )?

Я бы ожидал, что mount в routes.rb может решить все эти проблемы относительного пути для вас.

Я думаю, что переполнение стека - это здорово, но я подозреваю, что вы справитесь с этим в списке рассылки Nesta. Количество людей, которые используют Nesta и видят ваши посты здесь, будет относительно небольшим ...

...