Rails缓存问题?

3

我有一个rails博客应用程序,一直运行得很好。然而,我进行了一些缓存实验,尽管已经恢复到以前的版本,但仍然存在问题。

似乎所有页面都被缓存了或类似于此的东西(我已经清除了浏览器缓存),因为服务器日志没有显示任何对数据库的获取。

有关如何解决这个问题的任何线索吗?谢谢!

1个回答

6
问题可能是您使用了类似于以下的页面缓存:

代码示例:

class ProductsController
  caches_page :index
  def index
    @products = Product.all
  end
end

这实际上在您的 /public 目录中创建了一个名为 products.html 的文件,因此即使不访问 Rails 栈,该文件也会被呈现。清除浏览器缓存无法解决问题,因为该文件存储在服务器上。有两种方法可以使缓存过期。

第一种方法是创建一个动作来清除缓存,然后在需要清除缓存时调用该动作:

class ProductsController
  def clear
    expire_page :action => :index
  end
end

第二种方法是从命令行(bash)中简单地删除.html文件:
rm public/products.html

页面缓存很令人困惑,因为很难确定页面何时被缓存以及缓存在哪里。

P.S:如果您没有使用页面缓存,则可以使用以下命令清除整个memcached缓存或内存缓存:

Rails.cache.clear

1
文件存储在公共目录中,这就是问题所在。非常感谢! - silkwormy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接