问题标签 [rackup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1746 浏览

ruby - 支持 HTTPS 的 Rackup

我发现了这个问题,它并没有真正解决我的问题,但至少可以让我以正确的方式表达我的问题。

我有一个简单的露营应用程序,我通过rackup. 我希望能够通过安全连接测试应用程序(自签名服务器证书就可以了),但由于我的开发盒上没有 root,如果我能保护默认服务器会更好rackup (可能是 Mongrel?WEBrick?不知道如何检查)因为它很轻量级并且或多或少是开箱即用的。

再说一次,我 a) 没有 root,b) 以前没有配置过 Apache 服务器,c) 不是特别想学习是否可以提供帮助。如果没有简单的方法可以做到这一点,我想这就是生活,但如果我可以将一两个选项传递给 rackup,或者更新我的 config.ru,以提供 HTTPS 支持,那将是理想的。

0 投票
2 回答
9090 浏览

ruby - 通过 Sinatra 应用程序将选项传递给 rackup

我是 ruby​​ 新手,正在学习 Sinatra。虽然通过要求和直接在其下设置路由来创建 Sinatra 站点'sinatra'非常简单且文档齐全,但通过要求'sinatra/base'和编写继承自'Sinatra::Base' 的类来创建应用程序虽然仍然相对容易,但文档记录却很差(可能是因为它是Sinatra 的最新功能)。

这正是我正在做的。我在 Sinatra 部分没有太多麻烦,但是我在 rackup/thin/server 部分遇到了一些麻烦。显然有两种部署应用程序的方法:使用 Sinatra 本身(使用该run!方法)和使用 rackup 文件(通常是config.ru.

使用 Sinatra 的run!方法非常直观,而且效果很好,但如果我想在 heroku 上部署我的应用程序,显然它不起作用。事实上,我在 GitHub 上遇到的几乎所有 Sinatra 应用程序都使用config.ru文件。

使用机架文件可能同样直观,但我无法理解如何将选项从 Sinatra 应用程序传递到服务器(ir:端口)。我尝试将选项合并到 rackup 的默认选项数组:

通过将选项直接添加到应用程序:

通过从应用程序类中设置选项:

上述所有方法都失败了,要么显示错误消息,要么只是没有考虑任何选项。那么,在使用 rackup 文件时,有没有办法通过 Sinatra 应用程序将选项传递给 rackup/thin/服务器?或者问题中的选项应该通过命令行选项直接传递给 rackup/thin/the 服务器?

作为问题的参考,这里是我正在构建的小 Sinatra 应用程序:https ://github.com/AzizLight/Wiki/

0 投票
0 回答
251 浏览

ruby - 带有 rackup 的 run_later 无法使用 ctrl-c 退出 - Ruby

我正在使用这个 run_later https://github.com/elecklider/sinatra_run_later模块(我自己的https://github.com/pmamediagroup/sinatra_run_later的分支)运行带有 rackup 的 Sinatra 应用程序。但是,当我将 ctrl-c 发送到 rackup 时,我似乎无法让它干净地退出。它在第 38 行出现错误ERROR SystemExit: exit。当我关闭 rackup 过程时,如何让它很好地退出?

编辑:

我一直在搞砸这个,这里提出了错误:

似乎注释掉整个trap块可以很好地清理它。从本质上讲,这回答了如何让它很好地清理的问题,但我不知道为什么,如果有人能提供一些澄清,我会非常感激。

0 投票
3 回答
11937 浏览

ruby - 找不到“rackup”命令?

http://titusd.co.uk/2010/04/07/a-beginners-sinatra-tutorial

我试图按照rackup config.ru上面第 4 节教程中的说明从命令行运行。它最终显示“找不到命令 'rackup'”。

知道发生了什么吗?

0 投票
1 回答
264 浏览

ruby - 当我使用“rackup”运行机架应用程序时,为什么会出现 NameError?

我在使用rackup.

这是我的 config.ru:

调用rackup config.ru抛出:

您可以在Github中查看完整的项目。我不明白我得到的原因NameError

0 投票
2 回答
3166 浏览

ruby - 正在寻找机架应用程序结构和 config.ru 规范?

这可能会让我看起来很蹩脚,但我仍然找不到典型的机架应用程序结构(文件夹/文件,如 public、config.ru)或config.ru文件内容的任何正式描述。

在 Java 世界中,对 Web 应用程序及其组成部分(WEB-INF、META-INF web.xml)有明确的定义。

是否有 Rack Web 应用程序的规范?或者它是像 Ruby 本身一样模糊的东西。

我希望在http://rack.rubyforge.org/网站的某个地方找到该信息,但我找不到。请指出我正确的方向。


尽管我将此问题标记为已回答,但值得一提的是,该问题本身并不是很合理。应用程序结构由实际使用的网络服务器/插件组合驱动,例如 Apache/Passenger,而不是 Rack。

0 投票
1 回答
610 浏览

ruby-on-rails - 使用 Foreman gem 的机架文件无效

试图在 vagrant (Ubuntu) 上运行 foreman start。

档案

private_pub.ru 在我的根目录下,Procfile 也是。

如果我这样做(它有效):

在rails服务器之后......

但是当我这样做时:

0 投票
1 回答
371 浏览

configuration - 在 Heroku 上部署 Sinatra 应用程序

关于在 Heroku 上部署 Sinatra 应用程序,我对实际上不是一个实际问题(只是一个概念难题)感到困惑。

我有两个应用程序,几乎在各个方面都相同,除了一个将其大部分逻辑放在一个不包含 Sinatra::Base 类的文件中,并使用“需要其他文件名”来获取它需要的逻辑。该 Sinatra:Base 类名为 Kincalc。

对于在一个文件中包含所有逻辑的应用程序(即包含 Sinatra:Base 类的同一文件),在我的 config.ru 文件中,最后一行显示“运行 Sinatra::Application”,它可以正常启动。但是在另一个应用程序中,如果我将其作为最后一行,该应用程序会正确上传并说它已“部署到 Heroku”,但会显示“未找到”消息。当我将最后一行读取为“运行 Kincalc”时,它可以正常加载。

我已经来回检查了这一点,这两个应用程序的构建方式没有什么不同,除了一个为逻辑使用第二个文件(也位于根目录)的事实。为什么这会是个问题,或者这真的是个问题?当我尝试将第二个文件(没有 Sinatra 类的文件)放在单独的 lib 文件夹中时,当我调用类名时它仍然有效,但当我调用“Sinatra::Application”时它仍然有效。

0 投票
1 回答
850 浏览

websocket - Faye 阻止连接

我在 Rails 应用程序中使用 Faye,我遇到了一个非常奇怪的行为,如果 faye 在提供subscribe所有资产之前到达(即,在$(document).ready()调用之后但在浏览器中的微调器运行时),那么 faye 将阻止浏览器处于“加载”模式(例如,微调器永远不会停止)。

相信我正在使用 websockets 而不是长轮询,尽管我不确定如何确定。当启用引用 websocket 的调试消息时,我确实在 faye 的日志中看到:

浏览器连接到thin正在运行的独立服务器

我正在使用的命令是

我正在运行 faye 0.8

这是我在 chrome 中看到的

5 分钟后,我简单地[Esc]和那些出现了,那faye.js是 Faye 提供的脚本,似乎这些文件中的每一个似乎都对应于每个subscribe调用。

有趣的是,在这 5 个文件之后,有 5 个调用块,每分钟开始一次。

在此处输入图像描述

对此的任何帮助将不胜感激!

0 投票
1 回答
2686 浏览

ruby-on-rails - 机架安装应用程序与 sinatra 应用程序的导轨安装

我想知道哪种方法可以更好地为 ruby​​ 安装不同的应用程序。我有 2 个 sinatra 应用程序和一个 rails 应用程序。

一种方法是使用 rails 作为基础并使用routes.rb(within rails)安装 sinatra 应用程序

这样,两个 sinatra 应用程序都在 rails 中。

另一种方法是使用 rackup 来安装所有三个使用config.ru(所有三个应用程序并行)

我无法找到一种优于另一种的优势,或者出于什么原因哪种方法更好。