【发布时间】: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 获得了这个弹出窗口
我不知道 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