我的Sinatra应用程序中的工头不提供静态文件

时间:2014-09-13 14:05:20

标签: ruby heroku sinatra foreman

我正在使用Heroku部署一个简单的Sinatra应用程序,我用它来托管JavaScript游戏。

所有静态资产都保存在/ public目录中。

当我在本地运行应用程序时,即'$ ruby​​ bin / app.rb',我可以从文件夹中访问静态资源。但是,当我用工头启动本地服务器时,我收到404错误; “西纳特拉不知道这个小曲”。

Procfile:

web: bundle exec ruby bin/app.rb -p $PORT

的Gemfile:

source "https://rubygems.org"
ruby '1.9.3'
gem 'sinatra', '1.1.0'
gem 'json', '1.8.1'

仓/ app.rb:

require 'sinatra'
require 'rubygems'
require 'json'

set :views, "views"
set :public_folder, "public"

get '/' do
  redirect '/index.html'
end

get '/play/:game' do
etc.

目录结构:

-bin
  app.rb
-public
  image.png
  some other static files
Gemfile
Gemfile.lock
Procfile

运行sinatra应用程序时,/ image.png显示图像没有问题。在foreman上运行时,/ image.png会返回404错误。

有没有人知道这里会发生什么?

0 个答案:

没有答案