Ruby Sinatra错误的环境配置

Ruby Sinatra错误的环境配置,ruby,configuration,sinatra,config,Ruby,Configuration,Sinatra,Config,我在config/environment.rb上有一个环境配置文件,其中包含以下内容: require 'rubygems' require 'bundler' Bundler.setup require 'sinatra' require 'sinatra/base' require 'sinatra/reloader' 在我的config.ru中,我有: require File.expand_path('../config/environment', __FILE__) require

我在config/environment.rb上有一个环境配置文件,其中包含以下内容:

require 'rubygems'
require 'bundler'
Bundler.setup
require 'sinatra'
require 'sinatra/base'
require 'sinatra/reloader'
在我的config.ru中,我有:

require File.expand_path('../config/environment', __FILE__)
require 'slim'
require 'coffee-script'
require 'padrino-helpers'
require 'sinatra/twitter-bootstrap'
我得到一个错误:

Errno::ENOENT at /profile
No such file or directory - /Users/myusername/projects/accounts/config/views/profile.slim
只有当我从config/environment.rb文件中删除require'sinatra'并将其放入config.ru中时,这种情况才会消失。有人能解释为什么会这样吗?我假设
require File.expand_path('../config/environment',_uufile_uu)
只会将该文件中的所有require包含到config.ru中,但情况似乎并非如此。它现在认为我的视图位于config文件夹中


我遵循了这里给出的建议:但同样,将require'sinatra'移动到环境中会破坏应用程序

该错误看起来是因为Sinatra在呈现响应时无法找到精简模板,因为它正在查找
config
目录下的
views
目录。默认情况下,Sinatra查找与应用程序文件相关的视图目录,该文件(同样默认)是调用
require'Sinatra'
的文件。在您的情况下,require行位于
config/environment.rb
中,因此Sinatra将其视为应用程序文件,并在其下方查找
视图
目录

我假设您有一个尚未显示的实际应用程序文件。最简单的解决方案可能是:

根据您的设置,您可能希望改为:


正确地设置视图就可以做到这一点。我的应用程序存在于config.ru中,因此该方法最适合我的目的。非常感谢你!
set :app_file, __FILE__
set :views, 'path/to/views'