以下是启动时的详细信息
=>启动WEBrick
=> Rails 3.0.1应用程序从http://0.0.0.0:3000开发开始
=>用-d调用分离
=> Ctrl-C关闭服务器
[2011-01-11 13:43:57] INFO WEBrick 1.3.1
[2011-01-11 13:43:57] INFO ruby 1.9.2(2010-08-18)[i386-mingw32]
[2011-01-11 13:43:57] INFO WEBrick :: HTTPServer #start:pid = 10216 port = 3000
定期WEBrick崩溃。唯一的错误信息是:
ActionController :: RoutingError(没有路由匹配“/thumbnails/missing.png”):
此错误消息时有发生(我正在使用回形针),但每次发生时都不会导致WEBrick崩溃。我花了一点时间试图解决路由错误 - 但还没有解决它。我不认为这是WEBrick崩溃的根本原因,因为它不会每次都发生。
非常感谢任何帮助。
答案 0 :(得分:1)
抱歉,我不知道您问题的答案,但我可以提供您可能满意的潜在解决方法:使用Mongrel而不是WEBrick。 Mongrel运行速度更快,完全兼容。也许它不会在找不到路线时崩溃。大多数Rails开发人员在几年内都没有使用过WEBrick。
使用Mongrel:
gem install mongrel
如果Rails找到Mongrel,它会自动使用它。
希望能解决它!
答案 1 :(得分:1)
Mongrel无法解决问题,至少在Windows 7上使用Ruby 1.9.2 p180和Rails 3.0.9。
我发现导致问题的代码片段是(它位于C:\ Ruby192 \ lib \ ruby \ gems \ 1.9.1 \ gems \ railties-3.0.9 \ lib \ rails \ rack \ log_tailer.rb):
module Rails
module Rack
class LogTailer
.
.
.
def tail!
@file.seek @cursor
if !@file.eof?
contents = @file.read
@cursor = @file.tell
$stdout.print contents
end
end
end
end
end
如果您将此方法设为空白,则WEBrick将再次正常工作。我已经对它进行了大量的测试,抛出了很多RoutingError。
您可以使用此补丁。把它放在环境文件中:
module Rails
module Rack
class LogTailer
def tail!
end
end
end
end
这样做的缺点是您不会在控制台上看到调试消息。
要绕过此问题,您可以使用log4r在控制台上输出调试消息。
对我来说就像一个魅力。
答案 2 :(得分:1)
在记录器STDOUT上打印错误/警告后,看起来webrick崩溃了。我使用thin来解决它,它不会记录到STDOUT。
gem install eventmachine --pre
gem install thin
thin start
环境:win7x64,ruby 1.9.2(2011-07-09)[i386-mingw32],Rails 3.0.9
答案 3 :(得分:0)