jjzjj

ruby - 如何在 Heroku 上使用 Ruby Rack 为静态站点设置 URL

我的网站是here.它曾经是一个Django驱动的博客。但是我不再更新它所以我只是想把它变成一个静态的HTML站点。我得到了它并使用RubyRack将它移到了Heroku。但是每个URL都解析为主页。这是因为我的config.ru文件:useRack::Static,:urls=>["/media/images","/media/js","/media/css"],:root=>"public"runlambda{|env|[200,{'Content-Type'=>'text/html','Cache-Control'=>'public,max-age=86400'},File.op

ruby - Sinatra/1.4.3 使用 Rack::Session::Cookie 警告

我的配置代码require'sinatra'#set:environment,:productionenable:sessionsenable:loggingsetrun:truecasewhenproduction?setport:8081whendevelopment?require'sinatra/reloader'require'better_errors'useBetterErrors::MiddlewareBetterErrors.application_root=__dir__enduseRack::Session::Cookie,key:'N&wedhSDF',doma

ruby - Rack 和 Passenger 有什么区别?

我正在尝试将Sinatra应用程序部署到Dreamhost,它显示以下内容:SinceDHsupportsPassenger,whichinturnsupportsRack-basedrubyapplications,DHdoesindeedsupportSinatra.我在解析该语句时遇到困难-Rack和Passenger之间有什么区别(以及为什么Sinatra是“基于Rack的”)? 最佳答案 Rack是standardizedAPI用于Web服务器与Ruby中的中间件和Web框架通信。PhusionPassenger是一个实现

ruby - 如何在安装的不同版本的 gem 之间切换?

我在本地机器上安装了三个版本的Rack(rack(1.4.1,1.3.6,1.3.5))。对于某些gem(比如Cucumber),需要低版本的rack才能激活?我已经尝试过bundle但没有什么用。执行时,cucumber仍将使用系统版本为1.4.1的已激活Rack。Bundle指定应安装哪个gem但不确保将激活哪个gem。如何激活特定版本的rack? 最佳答案 您可以在项目的gemfile中指定一个版本gem"rack","1.3.5"由matt指出:使用Gemfile中指定的gem:bundleexeccucumber

ruby - 在 Rack::Test 中使用 Cookie

我正在尝试使用Rack::Test为我的Sinatra应用程序编写RSpec测试。我不明白如何使用cookie。例如,如果我的应用程序设置了cookie(不是通过:session),我如何检查该cookie是否设置正确?另外,我如何使用该cookie发送请求? 最佳答案 Rack::Test保留一个cookiejar,该cookiejar在请求期间持续存在。您可以使用rack_mock_session.cookies访问它。假设您有这样的处理程序:get'/cookie/set'doresponse.set_cookie"foo",

ruby - 从 TestCase 调用 Sinatra 应用程序实例方法

我在Sinatra应用程序中有一个util方法,我想从我的TestCase进行测试.问题是我不知道如何调用它,如果我只使用app.util_method我有错误NameError:undefinedlocalvariableormethod'util_method'for#我的应用.rb:classMyAppmy_app_test.rb:require"my_app.rb"require"test/unit"require"rack/test"classMyAppTest 最佳答案 西纳特拉aliasesthenewmethodto

ruby-on-rails - 如何在 Rack 中间件中使用 cookie?

我正在使用RubyonRails3,我想在Rack中间件中使用cookies.signed方法。我需要它,因为我想直接在中间件中对用户进行身份验证,而不是在application_controller.rb文件中使用before_filter。例如,如果我以这种方式在Controller中使用该方法:cookies.signed[:user_id']我明白了----1#Thisistheidofthecurrentsignedinuser-a64ee3asdtjhcc7b35fcb280956be00ba27f94d48dfe4291c06db7d57577d5893#Thisisth

ruby-on-rails - 如何在引擎中使用来自引擎的中间件

由于不同的gem在我的系统中如何交互,我有一个引擎安装到Rails应用程序上。我最近开始研究一个提供一些中间件功能的新gem。有点像这样:BaseApp\Engine\NewMiddlewareEngine#BaseApp/Gemfilegem'Engine'#Engine/Gemfilegem'NewMiddlewareEngine'#rakemiddlewareoutput:user@laptop[BaseApp]$bundleexecrakemiddlewareuseRack::SendfileuseActionDispatch::StaticuseRack::Lockuse#u

ruby - 以编程方式设置 Rack session cookie 过期

我正在使用Rack尝试在我的Sinatra应用程序中实现“记住我”功能。我可以将sessioncookie设置为在session结束时或X秒后过期,但我想同时执行这两种操作。例如,如果用户点击了“记住我”,那么我希望他们的session在X秒后结束。例如,我的app.rb有一行看起来像这样:useRack::Session::Cookie,:expire_after=>2592000,#30daysinseconds:secret=>MY_SECRET我尝试在用户登录时执行以下操作:if(!remember_me)env['rack.session.options'][:expire_

ruby - RACK 登录到哪里?

我正在通过RACK运行一个sinatra应用程序。事件记录到哪个文件?另外如何设置日志文件路径? 最佳答案 这取决于。许多开发人员将他们的应用程序日志文件定义为app/servername.log或仅定义为加载Rack应用程序的当前路径。是的,您可以更改它的路径。通常你会得到一个config.ru文件,内容如下:log=File.new("sinatra.log","a+")$stdout.reopen(log)$stderr.reopen(log)#optionallytosynclogswhiletheserverisrunni