Errno :: ENOENT at / no此类文件或目录

时间:2016-07-01 10:08:03

标签: ruby sinatra

我目前正在研究sinatra应用程序,我有一点问题。

我试图加载我的index.erb但是sinatra找不到index.erb。

这是我的app.rb

require 'rubygems'
require 'sinatra'

module Registration
  class HelloWorldApp < Sinatra::Base
    get '/' do
      erb :index
    end
  end
end

这是我的代码层次结构。

enter image description here

继续查看目录:Sinatra-Intro / app / views / index.erb 但我的观点是:Sinatra-Intro / views / index.erb

2 个答案:

答案 0 :(得分:0)

您可以使用视图设置更改默认位置。像这样:

set :views, Proc.new { File.join(root, "views") }

答案 1 :(得分:0)

您需要配置您的应用程序实例,这样的事情应该有效:

require 'rubygems'
require 'sinatra'

module Registration
  class HelloWorldApp < Sinatra::Base
    configure do
      set :public_folder  , File.expand_path('../public', __FILE__)
      set :views          , File.expand_path('../views', __FILE__)
      set :root           , File.dirname(__FILE__)
      set :show_exceptions, development?

      # Optional: Load from external file
      #YAML.load_file('path/to/config.yml').each do |k, v|
      #  set(k.to_sym, v)
      #end
    end

    get '/' do
      erb :index
    end
  end
end

然后:

bundle exec rackup