Tag: sinatra

无论SSH密钥如何,Capistrano都要求在部署时input密码

我的SSH密钥无疑是正确设置的,因为我从来没有提示input密码时使用SSH。 但是,capistrano在部署cap deploy时仍然要求input密码。 当我使用cap deploy:setup时,它不要求input密码cap deploy:setup尽pipe如此,奇怪的是, 如果没有密码提示,这会使部署周期更加顺畅。 细节:我正在将一个Sinatra应用程序部署到Dreamhost共享帐户(使用Passenger)。 我跟着一个教程做了很久很久以前的工作。 有些事情从此爆发了。 我正在使用capistrano(2.5.9)和git版本1.6.1.1。 这是我的Capfile: load 'deploy' if respond_to?(:namespace) # cap2 differentiator set :user, 'ehsanul' set :domain, 'jellly.com' default_run_options[:pty] = true # the rest should be good set :repository, "ehsanul@jellly.com:git/jellly.git" set :deploy_to, "/home/ehsanul/jellly.com" set :deploy_via, :remote_cache set :scm, 'git' set :branch, 'deploy' set :git_shallow_clone, 1 set :scm_verbose, true […]

为Sinatra设置默认的content_type

在Sinatra中,是否有可能将content_type 'application/json'为默认值? 因为我正在写api。

loginSinatra?

我无法弄清楚如何使用Sinatralogging信息。 我不想logging请求,而是在我的应用程序的某些点上的自定义消息。 例如,在获取URL时,我想logging"Fetching #{url}" 。 这是我想要的: 指定日志级别的能力(例如: logger.info("Fetching #{url}") ) 在开发和testing环境中,消息将写入控制台。 在生产中,只写出符合当前日志级别的消息。 我猜这可以很容易地在config.ru完成,但我不是100%确定我想启用哪种设置,如果我必须自己手动创build一个Logger对象(此外还有,要使用哪种types的Logger : Logger , Rack::Logger或Rack::CommonLogger )。 (我知道在StackOverflow上有类似的问题,但是没有人能够直接回答我的问题。如果你能指出我现在的问题,我会把它标记为重复的)。

在开发和生产中使用不同的Procfile

我有一个自制的Sinatra应用程序,我打算使用Heroku来托pipe它。 我在开发中使用工头和霰弹枪,使用以下Procfile: web: shotgun config.ru -s thin -o 0.0.0.0 -p $PORT -E $RACK_ENV 这对于开发和生产都很有效。 但事情是, 我不想在生产中使用霰弹枪,因为它太慢了。 我们可以为dev和prod使用单独的Procfileconfiguration吗?

Sinatra – API – 身份validation

我们将在Sinatra开发一个小的API应用程序。 什么是可用于保护API调用的身份validation选项?

事件源/服务器 – 通过Nginx发送事件

在服务器端使用Sinatra和stream块。 get '/stream', :provides => 'text/event-stream' do stream :keep_open do |out| connections << out out.callback { connections.delete(out) } end end 在客户端: var es = new EventSource('/stream'); es.onmessage = function(e) { $('#chat').append(e.data + "\n") }; 当我直接使用应用程序,通过http://localhost:9292/ ,一切工作完美。 连接是持久的,所有的消息都被传递给所有的客户端。 但是,当它通过Nginx, http://chat.dev ,连接被丢弃,重新连接每秒钟都会触发。 Nginx的安装程序看起来对我好: upstream chat_dev_upstream { server 127.0.0.1:9292; } server { listen 80; server_name chat.dev; location / […]

Sinatra与Rails

我已经完成了一些Sinatra和Rails示例,但是我很难弄清哪些function属于哪种技术。 我使用Sinatra / Rails获得了什么特别的function? 它只是ActionPack / ActionView? 纠正我,如果我错了,但我可以只使用Webrick / Mongrel和服务我的.erb文件的权利? 我可以在这些文件中使用ActiveRecord技术,并且仍然可以访问postvariables,会话状态和查询stringvariables吗? 所以,我问你们,如果我从上面的PHP的情况开始, Webrick + ERB + ActiveRecord,使用Sinatra可以获得什么? 而且我还能通过使用Rails获得什么?

如何让Sinatra在每次更改后自动重新加载文件?

我在用 # my_app.rb load 'index.rb' 并像这样启动服务器 ruby my_app.rb 但它永远不会重新加载我在索引页中所做的任何更改。 我在这里错过了什么吗?

用Sinatra提供静态文件

我只有一个页面网站使用HTML,CSS和JavaScript。 我想部署到Heroku的应用程序,但我找不到办法。 我现在正在努力使该应用程序与Sinatra合作。 . |– application.css |– application.js |– index.html |– jquery.js `– myapp.rb 以下是myapp.rb的内容。 require 'rubygems' require 'sinatra' get "/" do # What should I write here to point to the `index.html` end

单独REST JSON API服务器和客户端?

我即将创build一堆web应用程序。 (请参阅http://50pop.com/code的概述。)我希望他们能够从许多不同的客户端访问:前端网站,智能手机应用程序,后端Web服务等,所以我真的想要一个每个JSON REST API。 另外,我更喜欢在后端工作,所以我把自己的注意力全部集中在API上,并雇用其他人来制作前端UI,无论是网站,iPhone,Android还是其他应用程序。 请帮我决定我应该采取的方法: 在铁路上 制作一个非常标准的Railsnetworking应用程序。 在控制器中,执行respond_with开关,以提供JSON或HTML。 JSON响应是我的API。 临:很多先例。 伟大的标准和许多这样做的事例。 Con:不一定希望API与Web应用程序相同。 不喜欢,如果/然后respond_with切换方法。 混合两个非常不同的东西(UI + API)。 REST SERVER + JAVASCRIPT-HEAVY客户端 制作一个仅限JSON的REST API服务器。 使用Backbone或Ember.js作为客户端JavaScript直接访问API,在浏览器中显示模板。 Pro:我喜欢API和客户端的分离。 聪明的人说这是要走的路。 理论上很好。 似乎前沿和激动人心。 Con:先例不多。 这样做的例子并不多。 公共示例(twitter.com)感觉迟钝,甚至不采用这种方法。 REST SERVER + SERVER-SIDE HTML客户端 制作一个仅限JSON的REST API服务器。 制作一个基本的HTML网站客户端,只访问REST API。 较less的客户端JavaScript。 Pro:我喜欢API和客户端的分离。 但是,提供纯HTML5是相当简单的,而不是客户密集型的。 Con:先例不多。 这样做的例子并不多。 框架也不支持这个。 不知道如何处理它。 特别是从经验中寻找build议,而不仅仅是理论上的。