我有一个真正基本的Sinatra网站在本地工作。我正在使用“rackup”的东西,你可以在这里定义config.ru
:
require './web'
use Rack::ShowExceptions
run App.new
然后在终端中你可以运行'rackup'并启动一个Web服务器,一切都很顺利。
然而,当我将此部署到heroku时,我没有收到任何错误消息,但是,当我访问该网站时,它说标准“Sinatra不知道这个小曲”错误。
以下是web.rb
的摘要,如果有帮助的话:
require 'sinatra'
require 'maruku'
require 'mustache/sinatra'
require 'nokogiri'
class App < Sinatra::Base
register Mustache::Sinatra
require './views/layout'
set :mustache, {
:views => './views/',
:templates => './templates/'
}
get '/' do
"FUUUUUUUUUUUUU"
end
查看heroku日志,出现就像sinatra开始然后停止;它不会继续运行。然后当有人发出请求时,服务器显然会返回404
2012-01-20T12:39:23+00:00 app[web.1]: == Sinatra/1.1.0 has taken the stage on 16662 for development with backup from Thin
2012-01-20T12:39:23+00:00 app[web.1]: >> Thin web server (v1.2.7 codename No Hup)
2012-01-20T12:39:23+00:00 app[web.1]: >> Maximum connections set to 1024
2012-01-20T12:39:23+00:00 app[web.1]: >> Listening on 0.0.0.0:16662, CTRL+C to stop
2012-01-20T12:39:23+00:00 app[web.1]: == Sinatra has ended his set (crowd applauds)
2012-01-20T12:39:23+00:00 app[web.1]:
2012-01-20T12:39:23+00:00 app[web.1]: >> Stopping ...
2012-01-20T12:39:23+00:00 heroku[web.1]: Process exited
2012-01-20T12:39:24+00:00 heroku[router]: GET young-river-2245.herokuapp.com/ dyno=web.1 queue=0 wait=0ms service=48ms status=404 bytes=409
答案 0 :(得分:0)
每当您从Sinatra::Base
继承时,您必须require 'sinatra/base'
而不是require 'sinatra'
文件顶部的web.rb
。
我刚刚使用您的代码段运行了一个简单的测试,并且能够通过执行此操作来复制并修复错误。