如何在Heroku上部署Sinatra +胡子?

时间:2012-01-19 23:03:35

标签: ruby heroku sinatra mustache

我有一个真正基本的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

1 个答案:

答案 0 :(得分:0)

每当您从Sinatra::Base继承时,您必须require 'sinatra/base'而不是require 'sinatra'文件顶部的web.rb

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

相关问题