Sinatra不加载资产

时间:2016-04-29 15:05:20

标签: ruby sinatra

我有一个sinatra登陆页面。服务器从根文件夹中的执行index.rb开始。

例如:

  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文件相同。

1 个答案:

答案 0 :(得分:2)

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

之前加上index.css