我对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
时,它只是退出而没有失败或任何事情。是否有一个特殊的关键字让应用程序提供文件?
答案 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)
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。当您对代码进行更改时,重新运行将重新加载您的项目,这样您就不必在进行更改时重新启动应用程序。