运行我的Sinatra应用程序时,使用shotgun gem和msvcrt-ruby18.dll时出错

时间:2010-05-14 01:17:41

标签: ruby sinatra mongrel shotgun

问候,

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

我的一位朋友告诉我这是一个霰弹枪问题并将我转介给rtomayko的霰弹枪宝石:

http://github.com/rtomayko/shotgun

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

当我输入 shotgun shortener.rb 来运行我的Sinatra应用时,我收到此错误:

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

我还应该提一下,在测试霰弹枪方法之前看看它是否有效,我安装了mongrel (我知道我应该检查一下,在执行此操作之前是否有霰弹枪工作,因为安装mongrel会使这个问题复杂化) 。因此,除了获取上面的错误消息之外,我还从Ruby.exe获取此弹出窗口

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

我不知道 msvcrt-ruby18.dll 是什么,但我知道安装霰弹枪和/或 mongrel 会造成此问题。

从哪里开始?

谢谢, 亚当

1 个答案:

答案 0 :(得分:3)

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

gem update --system

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

gem install mongrel --pre