【发布时间】:2011-04-02 17:14:55
【问题描述】:
所以,我正在开发一个 sinatra 应用程序,该应用程序为客户托管多个不同的微型站点。我的 public 和 views 目录的结构是这样的:
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_ - the root folder的根文件夹?
标签: ruby routes sinatra custom-routes