Ruby 杂种问题:相同的url,不同的响应

Ruby 杂种问题:相同的url,不同的响应,ruby,mongrel,Ruby,Mongrel,我正在编写一个小应用程序,以便从总体上学习ruby和web开发。该应用程序是一个小博客,网络服务器是混血儿。我在mongrel之上建立了一个简单的MVC结构,带有一个前端控制器和一个url调度程序。当我第一次转到url时,会显示“hello”文章的内容 但从那时起,当我刷新页面或转到另一个url时,我看到的是我设置的404错误页面。我发现解决问题的唯一方法是为每个请求重新启动服务器,这显然不是一个解决方案 我的代码如下所示: launch.rb require 'rubygems' requir

我正在编写一个小应用程序,以便从总体上学习ruby和web开发。该应用程序是一个小博客,网络服务器是混血儿。我在mongrel之上建立了一个简单的MVC结构,带有一个前端控制器和一个url调度程序。当我第一次转到url时,会显示“hello”文章的内容

但从那时起,当我刷新页面或转到另一个url时,我看到的是我设置的404错误页面。我发现解决问题的唯一方法是为每个请求重新启动服务器,这显然不是一个解决方案

我的代码如下所示:

launch.rb

require 'rubygems'
require 'mongrel'
require 'config/settings'
require File.join(Settings::UTILS_DIR, "dispatcher.rb") 

class FrontController < Mongrel::HttpHandler
  def process(request, response)

    route = Dispatcher.new.dispatch(request.params["REQUEST_URI"]) 
    controller = route["class"] 
    action = route["method"]
    params = route["params"]
    action_output = controller.new.send(action, params)

    response.start(200) do |head, out|
      head["Content-Type"] = "text/html" 
      out << action_output 
    end 
  end 
end

h = Mongrel::HttpServer.new("192.168.0.103", "3000") 
h.register("/", FrontController.new)
h.run.join
需要“rubygems”
需要“杂种”
需要“配置/设置”
require File.join(设置::UTILS\u DIR,“dispatcher.rb”)
类FrontController:index,“params”=>nil}
结束
路由={}
除非uri[1],否则为零?和uri[2]。零?
controller_class=uri[1]。大写也许我得到了一个提示。
这是我在控制台上调试会话的结果:

开始请求/文章/索引
uri[0]:uri[1]:文章uri[2]:索引uri[3]:
控制器类:ArticleActions
控制器\方法:索引
结束请求/文章/索引

开始请求/文章/索引
uri[0]:uri[1]:文章uri[2]:索引uri[3]:
控制器类:ArticleActions
控制器\方法:索引
结束请求/文章/索引

开始请求/favicon.ico uri[0]:uri[1]:favicon.ico uri[2]:uri[3]:
控制器类:Favicon.icoActions
控制器\u方法:
2010年7月10日星期六17:20:21+0200:读取错误#名称错误:错误的常量名称Favicon.icoActions /home/ismaelsow/blog/utils/dispatcher.rb:22:在“const_defined”中

我认为浏览器启动了对favicon.ico的GET请求,但没有找到它,因为我在应用程序的根目录中有一个favicon.ico。 我尝试过一些变化:

h.register("/favicon.ico", Mongrel::DirHandler.new(File.dirname(__FILE__)))
h.register("/", FrontController.new)
但它似乎不起作用

h.register("/favicon.ico", Mongrel::DirHandler.new(File.dirname(__FILE__)))
h.register("/", FrontController.new)