公共目录没有与Sinatra一起服务

时间:2017-08-20 08:40:56

标签: heroku sinatra rackup

正如标题所说,我无法让Heroku使用我的公共资产。

在本地,使用shotgun运行我的应用时,它可以正常工作。但是rackup(Heroku使用的是什么),css和资产404。

我在这里尝试过一堆答案(onetwothree)但没有一个有效。

这是我的目录结构:

dir struct

我的config.ru:

require 'bundler'
Bundler.require

require File.expand_path('../config/environment',  __FILE__)

run BikeShareApp

我的控制员:

class BikeShareApp < Sinatra::Base
  get '/' do
    erb :'home/index'
  end

  get '/stations' do
    @stations = Station.all
    erb :'stations/index'
  end
end

编辑:这就是我按照

的方式引用我的资产的方式
<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/overwrite.css" rel="stylesheet">

1 个答案:

答案 0 :(得分:0)

找到它。

关注this指南并将其放入我的config.ru中:

run lambda { |env|
  [
    200,
    {
      'Content-Type'  => 'text/html',
      'Cache-Control' => 'public, max-age=86400'
    }
  ]
}