在需要sinatra / base时查找公用文件夹的问题

时间:2011-07-26 04:13:50

标签: ruby sinatra haml

我发现在我的Sinatra应用程序中,当我require 'sinatra'时,我可以按预期访问我的公共文件夹,但是当我require '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'

script.haml

%script(type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js")
%script(type="text/javascript" src="/js/table.js")
%link(rel="stylesheet" type="text/css" href="/css/table.css")

是的,我有正确的目录结构。就像我说的,它使用require sinatra。任何人都知道为什么会发生这种情况以及我可以做些什么来解决它?

1 个答案:

答案 0 :(得分:11)

要求Sinatra::Base未设置任何需要Sinatra的默认configuration settings。您自己需要set :public_folder ...到合适的值,例如:

set :public_folder, 'public'