Как мне развернуть усы Синатра + на Героку? - PullRequest
3 голосов
/ 20 января 2012

У меня действительно простой сайт Синатра, работающий локально.Я использую вещь "rackup", где вы определяете config.ru следующим образом:

require './web'

use Rack::ShowExceptions

run App.new

А затем в терминале вы можете запустить 'rackup', и веб-сервер запускается, и все хорошо.

Однако, когда я развертываю это на 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 
  • Редактировать

Глядя на логи герою, это появляется как синатра начинается, а затем останавливается;это не продолжает работать.Затем, когда кто-то делает запрос, очевидно, сервер возвращает 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 голосов
/ 03 октября 2012

Всякий раз, когда вы наследуете от Sinatra::Base, вы должны require 'sinatra/base' вместо require 'sinatra' вверху вашего web.rb файла.

Я только что провел простой тест, используя ваши фрагменты, и смог выполнить репликацию, а затем исправить ошибку, выполнив это.

...