$ gem install sinatra
- 测试:
$ subl app.rb
- app.rb内容:
require 'sinatra' get '/' do "Hello, World!" end
- 运行服务器:
$ ruby app.rb
在浏览器中输入:localhost:4567,没问题的话就会显示Hello, World!
- 基于类的宏来定义route的写法:
require 'rubygems' #有没有都行,不影响 require 'sinatra/base' class App<Sinatra::Base get '/' do "Hello, World!" end end
- 使用模板
见过用过的有两种:erb、haml
$ gem install haml #安装haml
#encoding:utf-8 require 'sinatra/base' require 'haml' class App<Sinatra::Base enable :inline_templates get '/' do @title="Top" haml "My Way" end get '/name/:name' do @name=params[:name] @title="Song for #{@name}" haml "#{@name}'s Way" end end App.run! __END__ @@layout !!!5 %html %head %title=@title %body %h1=@title %div=yield
- 导入被称之为“Rack::Rewrite”的、在应用系统内部重写URL的中间件。
当然,用mod_rewrite或Nginx也能做同样的事,但用“Rack::Rewrite”具有在应用系统内部记述rewrite规则的优点。
-
- 能不依存服务器应用程序中来书写rewrite规则。
这一点,尤其在无法控制服务器应用程序的云环境中,比如部署在heroku时等,非常便利。 - 借助Rack::Test等,能够书写rewrite规则的自动测试。
- 能不依存服务器应用程序中来书写rewrite规则。
安装很简单。
1
|
$ gem install rack-rewrite |
。。。 require 'rack/rewrite' 。。。 # 重写URL到/name/* use Rack::Rewrite do rewrite %r{^/song_for/(.*)},'/name/$1' end
- 通过“use”来使用的中间件,称之为“Rack Middleware”。这些中间件,实际上是遵照Rack的应用框架,也可以同样的使用在Ramaze和Rails等上面。
- 通过“register”来登录的被称为“Sinatra Extensions”模块,不能使用在Sinatra、或者是本次所说明的Sinatra扩张框架Padrino、Sinatra Base之外的地方。
使用“重载”解决“每次重启的麻烦”
|