2010-08-01 23 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無論如何都被丟棄。

邁克爾