我已经成功进行了一些将 Nesta 与 Rails 3 集成的实验(请参阅Is it possble include Nesta CMS into Rails3 application?和Nesta CMS and Rails3 integration: added blog to an exiting rails 3 application)
但是,我需要博客右侧的菜单,如“使用菜单”中所述
为了试一试,我用 构建了著名的内容演示站点nesta demo:content
,但是出现在右侧的所有链接(来自 content-demo/menu.txt)都因与 Rails 主应用程序有关(http:/ /example.com)而不是嵌入的内斯塔博客(http://example.com/blog)
这是我当前的文件配置,集成在 Rails 3.0.10 和 Nesta 0.9.10 之间:
配置/路由.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
丰富相同的结果...
配置/初始化程序/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__))
内斯塔博客/配置/config.yml
...
content: nesta-blog/content-demo
...
我认为这取决于内斯塔如何构建菜单点赞的相对路径,这取决于base_url
.nesta-0.9.10/lib/nesta/app.rb
url = "http://#{request.host}"
比我尝试在本地解包nesta-0.9.10更改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'
Gemfilebuild update nesta
但不,不起作用。
更新:
也很少尝试Nesta::Menu.for_path('/')
in./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-blog/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