我希望能够从./views的子目录(例如./views/admin)获取Sinatra视图.我知道你可以像这样设置视图:
set :views, Proc.new { File.join(root, "templates") }
Run Code Online (Sandbox Code Playgroud)
但是,我怎么能只为文件的一部分设置这个?
我有一个与Sinatra一起编写的小型Web服务器.我希望能够将消息记录到日志文件中.我通过http://www.sinatrarb.com/api/index.html和www.sinatrarb.com/intro.html 阅读,我看到Rack有一个名为Rack :: CommonLogger的东西,但我找不到如何访问和用于记录消息的任何示例.我的应用程序很简单所以我把它写成顶级DSL,但我可以切换到从SinatraBase继承它,如果这是所需要的一部分.
什么是Sinatra相当于Rails的redirect_to方法?我需要按照Post/Redirect/Get流程进行表单提交,同时保留传递给我视图的实例变量.使用该redirect方法时,实例变量将丢失.
假设我有最简单的单文件Sinatra应用程序.他们主页上的你好世界会做.我想在Apache下使用Phusion Passenger,AKA mod_rails运行它.
我尝试安装宝石' sinatra-websocket ',但是当我跑步时gem install sinatra-websocket,我收到了这个错误......
ERROR: Failed to build gem native extension
... 随着 ...
C:/Ruby193/bin/ruby.exe extconf.rb
checking for main() in -lc... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers. Check the mkmf.log file for more
details. You may need configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=C:/Ruby193/bin/ruby
--with-thin_parser-dir
--without-thin_parser-dir
--with-thin_parser-include
--without-thin_parser-include=${thin_parser-dir}/include
--with-thin_parser-lib
--without-thin_parser-lib=${thin_parser-dir}/lib
--with-clib
--without-clib
C:/Ruby193/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The …Run Code Online (Sandbox Code Playgroud) 你成功使用过Sinatra吗?它是一个什么样的项目?在什么情况下你会建议使用Sinatra而不是Rails或Merb?
我有一个简单的sinatra应用程序.我想要做的就是使用它作为包装器来在特定路由上提供静态HTML文件.我的目录结构如下所示:
/directory
myhtmlfile.html
app.rb
Run Code Online (Sandbox Code Playgroud)
我的app.rb文件看起来像这样:
require 'sinatra'
get '/myspecialroute' do
html :myhtmlfile # i know html is not a method, but this is what I would like to do
end
Run Code Online (Sandbox Code Playgroud)
我怎么写这个,以便我可以保持我的HTML文件一个简单的HTML文件,但在特殊的路线上提供?
多亏了这一点,我学到了几种不同的方法:
get '/myspecialroute' do
File.read('myhtmlfile.html')
end
Run Code Online (Sandbox Code Playgroud)
这将打开,读取,关闭,然后将文件作为字符串返回.
或者有一个辅助函数来使这个更清洁:
get '/myspecialroute' do
send_file 'myhtmlfile.html'
end
Run Code Online (Sandbox Code Playgroud) 有没有办法以应用程序接收数据的确切方式将所有传入请求转储到Sinatra应用程序?也许是某种Rack中间件?
我将我的Sinatra应用程序上传到了Beanstalk.当我访问我的网站时,我的日志将被退回
No such file or directory - getcwd
Run Code Online (Sandbox Code Playgroud)
该应用程序之前正在工作.我认为这个问题与我将SASS添加到我的应用程序这一事实有关,但我并不积极.在我config.ru,我有以下代码处理SASS ...
# use scss for stylesheets
Sass::Plugin.options[:style] = :compressed
use Sass::Plugin::Rack
Run Code Online (Sandbox Code Playgroud)
如果它可能是另一个问题,请告诉我,我可以提供更多信息.谢谢.
ruby sass sinatra amazon-web-services amazon-elastic-beanstalk