2012-10-04 58 views
0

在Heroku上使用Rails 3.1.1,使用兩個Web dynos運行。資產遺漏在Rails中(也使用片段緩存)。沒有memcache

我目前不使用memcache。我是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成功在本地,並上傳至H eroku也成功了。

我認爲我的問題與this question關係非常密切,雖然我在生產模式下運行它(應該沒有什麼區別吧?)。

我對Memcached進行了一些嘗試,但我仍然是初學者如何使用它。

我個人的看法是,我試圖從緩存中獲取緩存的圖像,這會混淆驗證。舉例來說,在我的零散緩存我找

banners/annons-884c9fbe7f6805249247ef02438fca08.jpg

,而它可能與其他「代碼」像

banners/annons-121b1b12b12b1b1b11b1b.jpg 

這是正確的緩存?

我的問題:

  1. 我是否有同樣的問題與this question?是否我緩存在緩存中,可以這麼說?

  2. 是Memcached和Rake :: Cache的方式來處理這個?如果是這樣,我寧願我的碎片html頁面被存儲爲文件,而不是存儲在memcache中(它們是1.000 x 3 Mb)。我怎樣才能做到這一點?

  3. 是否正確fragment_caching實際上不創建Heroku上的這些文件,因爲應用程序沒有寫入權限?

  4. 這可能會影響我的應用程序的性能(這是相當緩慢)?

  5. 總之,解決這個問題的簡單方法是什麼?

回答

0

我開始使用Memcache,並解決了這個問題。爲什麼,我不太確定,但現在它按預期工作(Miss Store ---> Fresh)。