如何在Rails应用程序中正确挂载Github的gollum维基?

9
我正在尝试提供一个基于Gollum的维基百科应用程序,通过将其作为Rack应用程序挂载在我的routes.rb文件中:
require 'gollum/frontend/app'

#Gollun config

gollum_path = Rails.root
Precious::App.set(:gollum_path, gollum_path)
Precious::App.set(:wiki_options, {:universal_toc => false})

TestWiki::Application.routes.draw do
  mount Precious::App, :at => "wiki"
end

维基应该在“/wiki”运行,但每次我访问这个网址时,它都会将我重定向到“/wiki/create/Home”,并且在我创建页面后,它会将我重定向到“/wiki/wiki/page_name”。
我是否遗漏了某些选项?这是否可能?
1个回答

10

我来分享一下刚才我为了让它工作起来所做的事情。实际上,我从你上面的代码开始,并对其进行了微调,直到排除故障。如果你仍在对它进行修改,也许它对你有用。

Gemfile文件中:

gem 'gollum'

在 routes.rb 文件中:

require 'gollum/app'

YourApplication::Application.routes.draw do
  Precious::App.set(:gollum_path, Rails.root.join('wiki').to_s)
  Precious::App.set(:default_markup, :markdown) # set your favorite markup language
  Precious::App.set(:wiki_options, {:universal_toc => false})
  mount Precious::App, at: 'wiki'
end

接下来,这是最重要的部分,创建并初始化维基目录:

~/Sites/ams$ mkdir wiki
~/Sites/ams$ cd wiki
~/Sites/ams/wiki$ ls
~/Sites/ams/wiki$ git init .
Initialized empty Git repository in /Users/xxx/Sites/ams/wiki/.git/

关闭服务器,执行bundle install,重启服务器,然后访问/wiki。

祝好运。

2014-11-06更新:最新发布的Gollum与原著写作时的目录结构有所不同。我已更新routes.rb示例以匹配最新版本的Gollum和Rails。


4
我建议将Precious::Apprequire行放在config/initializers/gollum.rb文件中。 - Kris
2
这似乎不再起作用了。出现错误bin/rails:6: warning: already initialized constant APP_PATH - Anurag Ramdasan
请问,Precious::App 是做什么的?我在 API 文档中没有找到它。它也不在中间件列表中。 - knh170
@knh170 Precious::App是内部的Sinatra Rack应用程序,用于提供Gollum服务。请参见:https://github.com/gollum/gollum/blob/master/lib/gollum/app.rb#L48和https://github.com/gollum/gollum/wiki/Gollum-via-Rack。 - voxobscuro
@voxobscuro 谢谢,还有一个问题:在将 Gollum 挂载到“/wiki”后,是否有人发现了意外行为?在“/”根目录下运行效果很好。但我发现在“/wiki”下操作存在问题:https://github.com/gollum/gollum/issues/1121 - knh170
显示剩余6条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接