【问题标题】:Assets miss in Rails (also using fragment caching). No memcacheRails 中的资产丢失(也使用片段缓存)。没有内存缓存
【发布时间】:2012-09-25 12:46:22
【问题描述】:

在 Heroku 上使用 Rails 3.1.1,运行两个 web dyno。

我目前不使用内存缓存。我是using fragment caching successfully

我的日志中有很多缓存未命中(而且非常非常少)。应该注意的是,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

Production.rb

  config.serve_static_assets = true
  config.action_controller.perform_caching = true

我在本地以生产模式成功运行rake assets:precompile,并成功上传到Heroku。

我认为我的问题与this question 密切相关,尽管我在生产模式下运行它(应该没有任何区别,对吧?)。

我已经对 Memcached 进行了一些试验,但我仍然是如何使用它的初学者。

我个人认为我正在尝试从缓存中获取缓存的图像,这会破坏验证。例如,在我的碎片缓存中,我正在寻找

banners/annons-884c9fbe7f6805249247ef02438fca08.jpg

而它可能会被缓存在另一个“代码”中,比如

banners/annons-121b1b12b12b1b1b11b1b.jpg

这对吗?

我的问题:

  1. 我是否遇到与this question 相同的问题?可以这么说,是我在缓存中缓存吗?

  2. Memcached 和 Rake::Cache 是处理这个问题的方法吗?如果是这样,我更希望将碎片化的 html 页面存储为文件,而不是存储在内存缓存中(它们是 1.000 x 3 Mb)。我该怎么做?

  3. fragment_caching 实际上并没有在 Heroku 上创建这些文件是否正确,因为应用程序没有写入权限?

  4. 这是否会影响我的应用程序的性能(速度很慢)?

  5. 简而言之,解决此问题的简单方法是什么?

【问题讨论】:

    标签: ruby-on-rails caching memcached fragment-caching


    【解决方案1】:

    我开始使用 Memcache,这解决了这个问题。为什么,我不太确定,但现在它按预期工作(Miss Store ---> Fresh)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多