我有一个rake的任务,运行我的服务器sinatra,它不起作用,ruby中的相同脚本工作。为什么?我可以在rake任务中运行服务器sinatra吗?
task :server do
begin
require 'rubygems'
require 'sinatra'
rescue LoadError
p "first install sinatra using:"
p "gem install sinatra"
exit 1
end
get '/:file_name' do |file_name|
File.read(File.join('public', file_name))
end
exit 0
end
答案 0 :(得分:3)
创建一个继承自Sinatra :: Base类的类
#app.rb
require 'sinatra'
class TestApp < Sinatra::Base
get '/' do
"Test"
end
end
然后从rake运行你的应用程序:
#Rakefile
$:.unshift File.join(File.dirname(__FILE__), ".")
require 'rake'
require 'app'
task :server do
TestApp.run!
end