codecamp

Sinatra 可选的设置

  • absolute_redirects:如果被禁用,Sinatra 会允许使用相对路径重定向,但是,Sinatra 就不再遵守 RFC 2616 标准 (HTTP 1.1), 该标准只允许绝对路径重定向。如果你的应用运行在一个未恰当设置的反向代理之后,你需要启用这个选项。注意 url 辅助方法 仍然会生成绝对 URL,除非你传入 false 作为第二参数。默认禁用。
  • add_charsets​:设定 ​content_type​ 辅助方法会 自动加上字符集信息的多媒体类型。应该添加而不是覆盖这个选项:​settings.add_charsets << "application/foobar"
  • app_file:主应用文件,用来检测项目的根路径,views 和 public 文件夹和内联模板。
  • bind:绑定的 IP 地址 (默认:0.0.0.0)。仅对于内置的服务器有用。
  • default_encoding:默认编码 (默认为 "utf-8")。
  • dump_errors:在 log 中显示错误。
  • environment:当前环境,默认是 ENV['RACK_ENV'],或者 "development" 如果不可用。
  • logging:使用 logger
  • lock:对每一个请求放置一个锁,只使用进程并发处理请求。如果你的应用不是线程安全则需启动。默认禁用。
  • method_override​:使用 _method 魔法以允许在旧的浏览器中在 表单中使用 put/delete 方法
  • port:监听的端口号。只对内置服务器有用。
  • prefixed_redirects​:是否添加 request.script_name 到 重定向请求,如果没有设定绝对路径。那样的话 redirect '/foo' 会和 redirect to('/foo') 起相同作用。默认禁用。
  • public_folder:public 文件夹的位置。
  • reload_templates:是否每个请求都重新载入模板。在 development mode 和 Ruby 1.8.6 中被企业(用来 消除一个 Ruby 内存泄漏的 bug)。
  • root:项目的根目录。
  • raise_errors:抛出异常(应用会停下)。
  • run:如果启用,Sinatra 会开启 web 服务器。如果使用 rackup 或其他方式则不要启用。
  • running:内置的服务器在运行吗?不要修改这个设置!
  • server:服务器,或用于内置服务器的列表。默认是 [‘thin’, ‘mongrel’, ‘webrick’], 顺序表明了 优先级。
  • sessions:开启基于 cookie 的 sesson。
  • show_exceptions:在浏览器中显示一个 stack trace。
  • static: Sinatra 是否处理静态文件。当服务器能够处理则禁用。禁用会增强性能。默认开启。
  • static_cache_control​:但 Sinatra 处理静态文件时,设置该选项会在响应头信心中添加 ​Cache-Control​ 头信息,并且可以使用 ​cache_control​ 辅助方法 (默认禁用)。设置多个值时,使用显式数组:​set :static_cache_control, [:public, :max_age => 300]
  • threaded: 设置为​ true​ ,则通知 ​EventMachine.defer​ 处理请求
  • traps:是否处理系统信号
  • views: views 文件夹。如果没有设置,则根据​app_file​中的设置。
  • x_cascade​:如果没有匹配路由,是否设置​X-Cascade​。


Sinatra 查找模板文件
Sinatra 环境
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Sinatra 配置

Sinatra 错误处理

Sinatra Sinatra::Base - 中间件,程序库和模块化应用

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }