2012-01-19 46 views
3

我有一个非常基本的Sinatra网站在当地工作。我使用的是“rackup”的东西,在这里你定义一个config.ru这样的:如何在Heroku上部署Sinatra +胡子?

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::Base继承服务器返回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 
+1

你是否从在项目目录中运行'heroku logs'获得任何内容? –

+0

似乎没有任何明显的错误,提到sinatra参加舞台等,没有别的有趣的。 – qui

+0

你的要求在那里吗?用404? –

回答

0

你必须require 'sinatra/base'而不是require 'sinatra'web.rb文件的顶部。

我刚刚使用您的代码段进行了简单测试,并能够通过执行此操作复制并修复错误。