【sinatra】安装测试
2024-10-11 11:14:20
$ 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之外的地方。
使用“重载”解决“每次重启的麻烦”
然后,在“require ‘sinatra/base’”的正后方加入:
最后,只需要通过register来声明使用重载(用Thin作服务器不能很好地运行,所以一并设定在WEBrick上)。
想设定为只在development环境中有效也很简单。
这样,就能在运行着Sinatra进程的终端,进行设计变更、逻辑变更等各种修改(追加gem等的情况是需要重启的,这个请注意)。 |
最新文章
- MyBlog
- viewport ——视区概念,为 自适应网页设计
- bootstrap的下拉框在firefox界面不友好的处理
- SVG的路径动画效果
- python网络编程socket之多进程
- 新浪新闻API接口
- android120 zhihuibeijing 开机页面
- 【NOIP模拟】cut
- [Java 教程 01] Hello,Java!
- ELK平台的搭建
- log4j java项目中的配置
- C# .net mvc web api 返回 json 内容,过滤值为null的属性
- vs2015 不能启动 iis express
- 库函数wordcloud安装的问题
- 教程:在 Visual Studio 中开始使用 Flask Web 框架
- Centos6.5下升级Python版本
- 【转】【Python】Python发送邮件(常见四种邮件内容)
- Tomcat清空缓存方法
- [LeetCode&;Python] Problem 700. Search in a Binary Search Tree
- Spring Boot学习--项目启动时执行特定方法