【发布时间】:2013-01-04 05:41:59
【问题描述】:
我正在尝试以更类似于普通 Ruby Gem 结构的方式构建我的 Sinatra 应用程序。我有以下文件树:
.
├── app.rb
├── config.ru
├── Gemfile
├── Gemfile.lock
├── helpers
│ ├── dbconfig.rb
│ ├── functions.rb
│ └── init.rb
├── hidden
│ └── Rakefile
├── lib
│ ├── admin.rb
│ ├── api.rb
│ ├── indexer.rb
│ ├── init.rb
│ └── magnet.rb
├── models
│ ├── init.rb
│ ├── invite.rb
│ ├── tag.rb
│ ├── torrent.rb
│ └── user.rb
├── public
│ ├── css
│ │ ├── reset.css
│ │ └── style.css
│ ├── i
│ ├── img
│ │ ├── bg.jpg
│ │ ├── dl-icon.png
│ │ ├── logo.png
│ │ ├── logo-public.png
│ │ ├── magnet-icon.png
│ │ ├── text-logo.png
│ │ ├── text-logo-public.png
│ │ └── upload-icon.png
│ └── js
│ ├── main.js
│ └── torrents.js
├── README.md
├── SPEC.md
├── tmp
│ └── restart.txt
├── TODO.md
└── views
├── error.erb
├── footer.erb
├── header.erb
├── index.erb
├── list.erb
├── nav.erb
├── text.erb
└── upload.erb
我有应用程序文件尝试在 lib/ 中呈现内容,但在(重新)启动乘客服务器时,我得到:Errno::ENOENT - No such file or directory - /home/dev/indexer/lib/views/index.erb
有问题的几行是:
get '/' do
erb :index
end
我该如何解决这个问题?
【问题讨论】:
-
@CodeGnome 不起作用,而且不是很相关
-
顺便说一句,我见过的大多数 Sinatra 项目倾向于将所有特定于应用程序的代码放在项目根目录下的
app目录中,所以在你的情况下是views、public、@ 987654329@ 和helpers将在app目录下。lib保留在项目根目录下。您在lib目录中拥有的所有应用程序代码都将在app中。应用程序不是库,因此布局不同。 -
@iain,好吧,这是有道理的,但在我看来,Sinatra 正在寻找
lib/views,因为核心代码在lib
标签: ruby gem sinatra runtime-error