2011-03-13 133 views
3

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

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

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

回答

6

这个问题可能是您正在使用页面缓存是这样的:

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

这实际上创建了一个名为products.html放在你的/ public目录文件,所以不是连打了Rails堆栈这个文件是渲染。清除浏览器缓存并不能解决问题,因为该文件存储在服务器上。有两种方法可以使该缓存过期。

第一个是,每当你想清除高速缓存中创建一个动作来清除缓存,然后调用这个动作:

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

做,这是简单地删除该html的第二种方式文件从您的命令行(bash):

rm public/products.html 

页面缓存是混淆的原因。很难判断一个页面实际上被缓存的时间以及它的存储位置。

P.S:如果你没有使用页面缓存,那么你可以清除使用此命令你的整个的memcached cahce或内存缓存:

Rails.cache.clear 
+1

文件被存放在公共目录中,这就是问题所在。非常感谢! – silkwormy 2011-03-13 20:56:19