我正在使用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错误。
有没有人知道这里会发生什么?