1

私の Rails 3.2 アプリは、キャッシュ (dalli 経由で memcached) から値を取得しようとしていますが、それがキャッシュされることを期待していません。キャッシュヒットはありませんが、何が起こっているのか戸惑っています。これはconfig.action_controller.perform_caching = true、WEBrick を使用した本番環境と開発環境で発生します。

これは、memcache の詳細出力に表示されているもののスニペットです。

<30 GET https://www.myrailsapp.com/?
>30 Writing an error: Not found
>30 Writing bin response:
>30   0x81 0x00 0x00 0x00
>30   0x00 0x00 0x00 0x01
>30   0x00 0x00 0x00 0x09
>30   0x00 0x00 0x00 0x00
>30   0x00 0x00 0x00 0x00
>30   0x00 0x00 0x00 0x00
<30 Read binary protocol data:
<30    0x80 0x00 0x00 0xd0
<30    0x00 0x00 0x00 0x00
<30    0x00 0x00 0x00 0xd0
<30    0x00 0x00 0x00 0x00
<30    0x00 0x00 0x00 0x00
<30    0x00 0x00 0x00 0x00

キャッシュ GET のみがあり、キャッシュ書き込みは見られないことに注意してください。

すべてのアクションで同様のキャッシュ GET 試行が見られますが、そのほとんどは JSON API 呼び出しです。それらはすべてキャッシュミスになります。このような、

<31 GET https://www.myrailsapp.com/api/somecall?param1=foo&param2=bar
>31 Writing an error: Not found

caches_actionアプリのどこにもディレクティブを指定していません。

これはレールのバグですか?

いいえの場合、これらの不要なキャッシュ GET を停止するにはどこを調べればよいですか?

ありがとう。

4

1 に答える 1

0

あなたが投稿したGithubスレッドのcswilliamsによると:

rack_cacheデフォルトで有効になっていることに問題があるようです (master ブランチで更新されたため)。

アプリケーションまたは環境のプロパティ ファイル (config/environments/development.rb など) で無効にすると、問題が解決するようです。

config.action_dispatch.rack_cache = false
于 2013-09-13T13:36:07.733 に答える