2010-08-01 60 views
0

当我打开一个使用我的CSS的页面时,它将会工作一次,但在打开CSS并重新保存之前不会再工作。每隔一段时间我尝试直接访问我的CSS,它工作正常。但其他时候,它不工作,我收到此服务器的输出:Ruby on Rails:奇怪的样式表问题

[2010-08-01 12:49:37] ERROR NoMethodError: private method `gsub!' called for #<Class:0x7f6d0639ad80> 
    /usr/lib/ruby/1.8/webrick/htmlutils.rb:16:in `escape' 
    /usr/lib/ruby/1.8/webrick/httpresponse.rb:232:in `set_error' 
    /var/www/rails-blog/vendor/rails/railties/lib/webrick_server.rb:94:in `handle_file' 
    /var/www/rails-blog/vendor/rails/railties/lib/webrick_server.rb:73:in `service' 
    /usr/lib/ruby/1.8/webrick/httpserver.rb:104:in `service' 
    /usr/lib/ruby/1.8/webrick/httpserver.rb:65:in `run' 
    /usr/lib/ruby/1.8/webrick/server.rb:173:in `start_thread' 
    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start' 
    /usr/lib/ruby/1.8/webrick/server.rb:162:in `start_thread' 
    /usr/lib/ruby/1.8/webrick/server.rb:95:in `start' 
    /usr/lib/ruby/1.8/webrick/server.rb:92:in `each' 
    /usr/lib/ruby/1.8/webrick/server.rb:92:in `start' 
    /usr/lib/ruby/1.8/webrick/server.rb:23:in `start' 
    /usr/lib/ruby/1.8/webrick/server.rb:82:in `start' 
    /var/www/rails-blog/vendor/rails/railties/lib/webrick_server.rb:60:in `dispatch' 
    /var/www/rails-blog/vendor/rails/railties/lib/commands/servers/webrick.rb:66 
    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require' 
    /var/www/rails-blog/vendor/rails/activesupport/lib/active_support/dependencies.rb:153:in `require' 
    /var/www/rails-blog/vendor/rails/activesupport/lib/active_support/dependencies.rb:521:in `new_constants_in' 
    /var/www/rails-blog/vendor/rails/activesupport/lib/active_support/dependencies.rb:153:in `require' 
    /var/www/rails-blog/vendor/rails/railties/lib/commands/server.rb:49 
    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
    /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require' 
    script/server:3 
127.0.0.1 - - [01/Aug/2010:12:49:37 BST] "GET /stylesheets/scaffold.css HTTP/1.1" 500 343 
- -> /stylesheets/scaffold.css?1280662371 

的代码我使用包括样式表是<%= stylesheet_link_tag 'scaffold' %>。我重新启动了Ruby服务器,但没有任何效果。什么可能导致这个问题?

这是从阅读one of the official guides

运行Mongrel时不会发生这种情况。

+0

您使用这里什么版本的Rails的? – pjmorse 2010-09-13 16:19:38

+0

@pjmorse:2.2.3-2(Ubuntu 10.04)。 – Zaz 2010-09-13 16:49:20

回答

2

这是WEBrick中的一个错误,请参阅http://www.ruby-forum.com/topic/206225

On 10.06.2010 03:19, Michael Pitman (mcp) posted

要继续使用的WEBrick,而不是 切换到杂种,也 只需编辑行15 的lib /红宝石/ 1.8 /使用WEBrick/htmlutils.rb到 你可以阅读

str = string ? string.to_s.dup : "" 

的问题是,NotModified 异常获取传递到 HTMLUtils ::逃避为一类,而 比一个字符串(最初在 HTTPServlet :: DefaultFileHandler中引发)。 由于唯一可以确实 是HTML转义的字符串,所以 应该是安全的,以便始终将输入 转换为字符串。

我怀疑是潜在 性能损失可以防止 解决方案一样,从它制作到 标准Ruby库,但它是一个 简单的解决方法。

或者,在WEBrick的DispatchServlet (LIB /在轨webrick_server.rb 宝石)的handle_file 方法之前,它调用res.set_error 不同之处,你可能会迫使 的err.message是一个字符串,或者 甚至可以清除该消息,因为我认为 对于 NotModified无论如何都被丢弃。

迈克尔