2016-04-29 110 views
0

我有一个sinatra登陆页面。服务器通过在根文件夹中执行index.rb开始。Sinatra不加载资产

例如:

get '/en' do 
    I18n.locale = 'en' 
    erb :index, locals: {langswitch: "/ru", current_locale: "en"} 
    end 

呈现index.erb和行之有效的。

这个页面有:

<link rel="stylesheet" type="text/css" href="index.css"> 

如果我打开这个链接,它指向http://0.0.0.0:9292/index.css,检索CSS文件,并如预期呈现页面。

然而,也有

get '/agreement/en' do 
    I18n.locale = 'en' 
    erb :agreement, locals: {langswitch: "/ru", current_locale: "en"} 
    end 

如果我访问同一个链接从这个页面,它,而不是导致http://0.0.0.0:9292/agreement/bootstrap.css,而不是http://0.0.0.0:9292/index.css,未能检索文件。

与我的所有图像,其他css文件相同。

回答

2

首先,您需要将所有资产放在公用文件夹中。那么你需要修改 <link rel="stylesheet" type="text/css" href="index.css"><link rel="stylesheet" type="text/css" href="/index.css">。 所以你所需要做的就是在index.css

之前加上 /