Sinatra毫无错误地退出

时间:2014-12-02 20:31:53

标签: ruby sinatra assets

我对Sinatra很新,我正在努力获得资产管理和资产管理。根据{{​​3}}编译工作。到目前为止,这是我的主要文件:

require 'sinatra/base'
require 'sinatra/assetpack'
require 'sass'

class App < Sinatra::Base
  register Sinatra::AssetPack
  assets do

    css :application, [
      '/css/main.scss'
    ]

    css_compression :sass

  end


  get '/hi' do
    erb "Hello World!"
  end
end

但是,出于某种原因,当我运行ruby main.rb时,它只是退出而没有失败或任何事情。是否有一个特殊的关键字让应用程序提供文件?

3 个答案:

答案 0 :(得分:3)

使用Sinatra应用程序的模块化样式,正如您所做的那样,运行ruby main.rb将会毫无错误地退出,因为它被视为标准的ruby应用程序,并且不会创建任何Web服务器。

您有两种选择。

1在示例中的最后run! if app_file == $0语句之前添加end。     这样您就可以使用ruby main.rb

运行应用

2(这是首选方法)使用以下内容创建一个rackup文件config.ru

require './main.rb'
run App

现在,您可以使用命令rackup -p 4567为应用程序提供服务,其中4567是您要使用的任何端口号。

答案 1 :(得分:0)

您需要start the application

require 'sinatra/base'
require 'sinatra/assetpack'
require 'sass'

class App < Sinatra::Base
  register Sinatra::AssetPack
  assets do

    css :application, [
      '/css/main.scss'
    ]

    css_compression :sass

  end


  get '/hi' do
    erb "Hello World!"
  end

  run! if app_file == $0
end

答案 2 :(得分:0)

一个观察,erb应该指向一个模板,例如:

get '/hi' do
  erb :home
end

应该在../ views / home.erb

中查找文件

另外假设你已经gem install sinatra。我还会在sinatra gem install rerun然后rerun ruby app.rb开发时使用重新运行的gem。当您对代码进行更改时,重新运行将重新加载您的项目,这样您就不必在进行更改时重新启动应用程序。