我发现在我的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
。任何人都知道为什么会发生这种情况以及我可以做些什么来解决它?
答案 0 :(得分:11)
要求Sinatra::Base
未设置任何需要Sinatra
的默认configuration settings。您自己需要set :public_folder ...
到合适的值,例如:
set :public_folder, 'public'