проблемы с поиском общей папки, когда требуется sinatra / base - PullRequest
1 голос
/ 26 июля 2011

Я обнаружил, что в моем приложении 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 Ответ

11 голосов
/ 26 июля 2011

Требующийся Sinatra::Base не устанавливает ни одной из настроек конфигурации по умолчанию , для которых требуется Sinatra. Вам нужно set :public_folder ... до подходящего значения самостоятельно, например:

set :public_folder, 'public'
...