我是Sinatra的新手,我无法弄清楚应用程序布局的位置.
我见过使用的内联方法
# app code
__END__
@@layout
%html
= yield
Run Code Online (Sandbox Code Playgroud)
但我希望布局在它自己的.haml文件中.
布局文件应该命名为什么?它应该放在什么目录中?
我有一个基于Ruby和Sinatra的工作应用程序部署在Heroku上.
我想利用Heroku上可用的HTTP缓存,它使用Varnish.
我不确定设置标头的最佳方法是什么,以及正确的语法.
有关最佳方法和语法的任何想法?
before do
headers "Content-Type" => "text/html; charset=utf8"
end
get '/' do
headers['Cache-Control'] = 'public, max-age=600'
# SOME STUFF HERE
haml :home, {:layout => :layout_minfooter}
end
Run Code Online (Sandbox Code Playgroud) 我没有发现如何从其他模块混合路由,如下所示:
module otherRoutes
get "/route1" do
end
end
class Server < Sinatra::Base
include otherRoutes
get "/" do
#do something
end
end
Run Code Online (Sandbox Code Playgroud)
那可能吗?
简单的问题:我希望能够在config.ru中将选项传递到我的sinatra应用程序中.怎么可能?我的config.ru看起来像这样:
run MyApp
Run Code Online (Sandbox Code Playgroud)
但我想在我的MyApp类中使用它来获取参数:
class MyApp < Sinatra::Base
def initialize(config)
@config = config
end
end
Run Code Online (Sandbox Code Playgroud)
但我无法想办法做到这一点.想法?
Web应用程序框架(如sinatra(ruby),play(scala),lift(scala))生成一个侦听特定端口的Web服务器.
我知道有一些原因,如安全性,群集以及在某些情况下的性能,可能会导致我在我的Web应用程序前面使用Apache Web服务器.
根据您的经验,您有任何理由吗?
有没有人用Sinatra 安装Devise gem?
Devise基于Warden,因此它应该适用于Sinatra,我找不到任何有关如何实现它的相关信息.
我正在尝试开发RESTful Sinatra应用程序.现在,我知道如何用类似的方式响应删除请求
delete '/user/:id' do |id|
#do something in the model
end
Run Code Online (Sandbox Code Playgroud)
我感兴趣的是如何执行该方法.我不能拥有DELETE而不是GET的链接,是吗?
到目前为止我找到的唯一解决方案是通过jQuery发送DELETE请求:如何在jQuery中发送PUT/DELETE请求?
我尝试在github上查看不同的RESTful Sinatra项目,但我的Ruby知识可能仅限于了解它们是如何做到的.
我正在尝试使用这里的说明来安装带有bundler的预发布版本的gem.
"bundle install"输出将gem列为已安装,但"gem list"无法找到它.
我的Gemfile:
source :gemcutter
gem 'sinatra', '1.1.0', :git => 'http://github.com/sinatra/sinatra.git'
gem 'RedCloth', '4.2.3'
Run Code Online (Sandbox Code Playgroud)
这是我的示例代码的其余部分的要点.
有没有人让这个场景奏效?
注意:我也在使用RVM(在OS X上).bundle show会将gem(和依赖项)列为现有的,但我无法正确解析它们.
谢谢.
我开始玩Sinatra并在Heroku上部署,我发现它非常有趣.我不需要Heroku提供的可扩展性,但我非常喜欢他们的CLI以及通过简单推送部署应用程序的能力.是否有在释放,我会一巴掌说,在一个EC2实例,并且将提供相同的服务(Web服务器,Postgres的,混帐推到部署,维护模式...)VM映像"的一个开源项目小'?