所以,我有一个sinatra应用程序,我正在与应用程序托管几个不同的微型客户端的应用程序。我有我的公开和看法目录结构的方式是像这样:自定义:Sinatra公共目录不工作
sites/
site1/
public/
style.css
views/
layout.haml
general.haml
site2/
public/
style.css
views/
layout.haml
general.haml
现在,当请求到来时我有以下两行:
set :views, Proc.new { File.join(root, "sites/#{site}/views") }
set :public, Proc.new { File.join(root, "sites/#{site}/public") }
当传入请求进入,并且网站被定义为“site1”,那么这些视图就会根据需要正常工作,并将它们呈现在适当的文件夹之外。但是,调用“/style.css”路由将返回404错误。
当我在应用程序根目录中创建公共目录并将style.css放置在那里时,它可以正常工作。不过,我需要这种方式逐个工作。我要去从官方文档by Sinatra的,但它仍然是行不通的,即使我设置
enable :static
,或者如果我使用
set :static, true
如文档描述。有任何想法吗?
你是否在两行之前用'set:root,File.dirname(__ FILE__)#_FILE_ - 根文件夹'设置了根文件夹? – 2011-04-02 09:11:26