Sinatra不加载资产
问题描述:
我有一个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文件相同。
答
首先,您需要将所有资产放在公用文件夹中。那么你需要修改 <link rel="stylesheet" type="text/css" href="index.css">
到 <link rel="stylesheet" type="text/css" href="/index.css">
。 所以你所需要做的就是在index.css
/