Ruby 需要sinatra/base时查找公用文件夹的问题
我发现在我的Sinatra应用程序中,当我Ruby 需要sinatra/base时查找公用文件夹的问题,ruby,sinatra,haml,Ruby,Sinatra,Haml,我发现在我的Sinatra应用程序中,当我需要'Sinatra'时,我可以按预期访问我的公用文件夹,但当我需要'Sinatra/base'时,我不能。这是我的相关代码(直到我更改为/base): config.ru root = ::File.dirname(__FILE__) require ::File.join( root, 'app' ) run MyApp.new app.rb require 'sinatra' require 'sinatra/namespace' require
需要'Sinatra'
时,我可以按预期访问我的公用文件夹,但当我需要'Sinatra/base'时,我不能。这是我的相关代码(直到我更改为/base
):
config.ru
root = ::File.dirname(__FILE__)
require ::File.join( root, 'app' )
run MyApp.new
app.rb
require 'sinatra'
require 'sinatra/namespace'
require 'haml'
class MyApp < Sinatra::Application
# ...
end
require_relative 'models/init'
require_relative 'helpers/init'
require_relative 'routes/init'
是的,我有正确的目录结构。正如我所说,它使用require sinatra
工作。有人知道为什么会发生这种情况,以及我能做些什么来修复它吗?requirementSinatra::Base
不会设置requirementSinatra
所做的任何默认设置。您需要自己将:public\u folder…
设置为合适的值,例如:
set :public_folder, 'public'
requising
Sinatra::Base
不会设置requisingSinatra
所设置的任何默认值。您需要自己将:public\u folder…设置为合适的值,例如:
set :public_folder, 'public'
谢谢事实就是这样,我没有意识到这两种要求Sinatra的方法之间的区别。注意,在
:public
之后需要一个逗号。哎呀,很抱歉逗号-fixedIt解决了我的问题,非常感谢!顺便说一句,语法已更改为set:public\u folder
谢谢!事实就是这样,我没有意识到这两种要求Sinatra的方法之间的区别。注意,在:public
之后需要一个逗号。哎呀,很抱歉逗号-fixedIt解决了我的问题,非常感谢!顺便说一句,语法已更改为set:public\u folder