【问题标题】:Errors with shotgun gem and msvcrt-ruby18.dll when running my Sinatra app运行我的 Sinatra 应用程序时,shotgun gem 和 msvcrt-ruby18.dll 出错
【发布时间】:2011-02-19 08:25:51
【问题描述】:

您好,

每次我对正在开发的 Sinatra 应用程序进行更改并尝试刷新浏览器(位于 http://localhost:4567/)时,浏览器都会刷新,并且控制台窗口似乎会重新启动 WEB 砖服务器。问题是浏览器窗口中的内容没有改变。

我的一个朋友告诉我这是霰弹枪问题,并让我参考了 rtomayko 的霰弹枪宝石:

http://github.com/rtomayko/shotgun

在此页面上,我了解到 shotgun gem 基本上可以解决我的问题,允许对我的应用所做的更改在我刷新后显示在浏览器窗口中。所以我安装了shotgun gem。安装成功。要激活霰弹枪功能,您必须在文件名前输入 shotgun。在这种情况下,我的 Sinatra 应用程序的文件名是 shortener.rb

当我输入 shotgun shorter.rb 来运行我的 Sinatra 应用程序时,我收到以下错误:

alt text http://lh6.ggpht.com/_83PkeFeVNNk/S-ymaYEgDUI/AAAAAAAAArE/rr7uJE3dRj4/shotgun_error.png

我还应该提到,在测试 shotgun 方法是否有效之前,我安装了 mongrel (我意识到我应该在执行此操作之前检查 shotgun 是否有效,因为安装 mongrel 会使这个问题复杂化) 。因此,除了收到上面的错误消息之外,我还从 Ruby.exe 获得了这个弹出窗口

alt text http://lh6.ggpht.com/_83PkeFeVNNk/S-ymaaWIZKI/AAAAAAAAArA/8qYCGUN8Wo4/msvcrt-ruby18.dll_error.png

我不知道 msvcrt-ruby18.dll 是什么,但我知道安装 shotgun 和/或 mongrel 会产生这个问题。

从这里到哪里去?

谢谢, 亚当

【问题讨论】:

  • 我发现 shotgun gem 无法正常工作,因为它需要 fork(2),而这在 Windows 上不可用。这解决了这个问题。
  • 我只想说,在咨询了一些开发者朋友之后,我得出的结论是,我将不再尝试在 Windows 上使用 Ruby 和 Sinatra 进行开发。我已经在我的 Windows Vista 64 机器上安装了 Virtual Box 和 Ubuntu 10.4,所以我可以创建一个运行 Ubuntu Linux 的虚拟机 (VM)。查看这篇博客文章,了解 Joon You 如何使用 Virtual Box 和 Ubuntu 在他的 Windows 机器上进行开发:blog.rubyhead.com/2010/05/14/if-youre-using-windows

标签: ruby sinatra mongrel shotgun


【解决方案1】:

msvcrt-ruby18.dll 错误是由 Mongrel 引起的。当前版本 1.1.5 与 Ruby 1.9 不兼容,运行时会抛出此错误。这很容易解决 - 只需确保 gem 是最新的:

gem update --system

然后安装新的 Mongrel 预发布版本:

gem install mongrel --pre

【讨论】:

  • 确实,谢谢查尔斯。您的回答对这位 Windows 上的新 Sinatra 用户有很大帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-10
  • 1970-01-01
  • 2011-06-09
  • 2012-03-06
  • 2016-04-24
  • 2011-01-11
相关资源
最近更新 更多