Ruby version: jruby-1.6.8
Rails version 3.2.6
Server: trinidad
キャッシュされていない場所でアセット(画像、CSS、またはJS)が提供されると、本番モードのログでエラーが発生します(つまり、ブラウザーキャッシュにある場合、アプリは304を送信し、エラーは発生しません) 。
Trinidadの代わりにWEBrickでアプリケーションを実行した場合は発生しません。
次の設定を行うと、開発モードでもエラーが発生します。
config.action_controller.perform_caching = true
ログに表示されるエラーは次のとおりです。
Started GET "/assets/pokervane_128-ade771fc66f43a240b500e874c6de23b.png" for 127.0.0.1 at Fri Sep 28 08:41:19 -0400 2012
2012-09-28 08:41:19 -0400 INFO: Served asset /pokervane_128-ade771fc66f43a240b500e874c6de23b.png - 200 OK (0ms)
2012-09-28 08:41:19 -0400 INFO: cache error: can't dump hash with default proc
org/jruby/RubyMarshal.java:101:in `dump'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/actionpack-3.2.6/lib/action_dispatch/http/rack_cache.rb:25:in `write'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/metastore.rb:83:in `store'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/context.rb:267:in `store'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/context.rb:259:in `fetch'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/context.rb:185:in `lookup'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/context.rb:66:in `call!'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/rack-cache-1.2/lib/rack/cache/context.rb:51:in `call'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/railties-3.2.6/lib/rails/engine.rb:479:in `call'
/Users/mark/.rvm/gems/jruby-1.6.8/gems/railties-3.2.6/lib/rails/application.rb:220:in `call'
file:/Users/mark/.rvm/gems/jruby-1.6.8/gems/jruby-rack-1.1.10/lib/jruby-rack-1.1.10.jar!/rack/handler/servlet.rb:22:in `call'
私のアプリケーションはアクティブレコードを使用していません(作成時に--skip-active-recordを使用しました)。この事実が関連していることを除外するために、私は自分のアプリのコピーを作成し、次のように追加しました。
require active_record/railtie
application.rbに移動し、データベースを作成しました。これはエラーを取り除きませんでした。
このエラーを取り除くために私ができることについて誰かが提案を持っていますか(もちろん、キャッシュをオフにする以外に)。