Rails 4.2片段缓存不起作用

时间:2015-03-27 01:48:06

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

我试图将缓存片段缓存到我网站的静态部分,但它似乎并没有起作用。我已使用以下内容设置config/application.rb

config.action_controller.perform_caching = true
config.cache_store = :dalli_store

在我看来,我有这个:

<% cache 'cache_key' do %>
  <!-- cached markup -->
<% end %>

我在日志中看不到有关将片段保存到缓存或在后续页面加载时检索它的任何内容。我也尝试过使用默认的Rails :file_store缓存。我知道缓存存储正在运行,因为使用Rails.cache.fetch正常工作。

我怎样才能让它发挥作用?

2 个答案:

答案 0 :(得分:6)

在Rails 5中:

import requests,json
import cookielib
from lxml import html



s = requests.session()
req1 = s.get("https://carrinho.extra.com.br/Checkout?ReturnUrl=http://www.extra.com.br#login")
content1 = req1.content
tree = html.fromstring(content1)
token = tree.xpath("//script")[0].text.split('"')[1]
data = {
'"clienteLogin":{"Token":"'+token+'","Operador":"","IdUnidadeNegocio":5,"PalavraCaptcha":"","Senha":"muranga21","cadastro":"on","Email":"xazune@car101.pro"},"mesclarCarrinho":true,"Token":"'+token+'","IdUnidadeNegocio":5,"Operador":""}'
 }
headers = {
'Content-Type':'application/json'
}

req3 = s.post("https://carrinho.extra.com.br/Api/checkout/Cliente.svc/Cliente/Login",json.dumps(data),headers=headers)

print req3.content

在开发环境中激活缓存。

答案 1 :(得分:3)

您可能正在开发环境中工作。 在/ config / environments / development中:

  

#显示完整的错误报告并禁用缓存   config.consider_all_requests_local = true
  config.action_controller.perform_caching = false

  

#显示完整的错误报告并禁用缓存   config.consider_all_requests_local = true
  config.action_controller.perform_caching = true

开发设置可能会覆盖其他设置。 确保已安装并运行memcache。如果出现问题,它应该出现在控制台中。