在 Heroku 上使用 Rails 3.1.1,运行两个 web dyno。
我目前不使用内存缓存。我正在成功使用片段缓存。
我的日志中有很多缓存未命中(而且很少有新鲜的)。应该注意的是,facebox-2(实际上获得了“新鲜缓存”)在缓存片段之外。
如您所见,据我所知,未命中并没有跟随“商店”,它们实际上并没有被缓存:
cache: [GET /assets/facebox2-e2da8b69b260f5c7f70e22a7b3e6bb26.css] fresh
cache: [GET /assets/application-282064ad715b6798765bdeb777974e9b.js] miss
cache: [GET /assets/seasons/fall_top_background2.png] miss
cache: [GET /assets/tell-a-friend-afd54b062dd0d649f6595b96bf7450a2.png] miss
cache: [GET /assets/banners/annons-884c9fbe7f6805249247ef02438fca08.jpg] miss
cache: [GET /assets/admarker-c709fa0ac510720b8ffb56e3a63a8bb3.jpg] miss
cache: [GET /assets/gifts/skolett-b97b0e5b262df6e15b95470f06917758.jpg] miss
cache: [GET /assets/closelabel.png] miss
cache: [GET /assets/loading.gif] miss
生产.rb
config.serve_static_assets = true
config.action_controller.perform_caching = true
我rake assets:precompile
在本地成功以生产模式运行并成功将其上传到 Heroku。
我认为我的问题与这个问题密切相关,尽管我在生产模式下运行它(应该没有任何区别,对吧?)。
我已经对 Memcached 进行了一些实验,但我仍然是如何使用它的初学者。
我个人的看法是,我试图从缓存中获取缓存的图像,这会破坏验证。例如,在我正在寻找的碎片缓存中
banners/annons-884c9fbe7f6805249247ef02438fca08.jpg
而它可能会与另一个“代码”一起缓存,例如
banners/annons-121b1b12b12b1b1b11b1b.jpg
这个对吗?
对于我的问题:
我和这个问题有同样的问题吗?可以这么说,是我在缓存中缓存吗?
Memcached 和 Rake::Cache 是处理这个问题的方法吗?如果是这样,我更希望将碎片化的 html 页面存储为文件,而不是存储在内存缓存中(它们是 1.000 x 3 Mb)。我怎样才能做到这一点?
fragment_caching 实际上并没有在 Heroku 上创建这些文件是否正确,因为应用程序没有写权限?
这是否可能会影响我的应用程序的性能(它很慢)?
简而言之,解决这个问题的简单方法是什么?