sil*_*rmy 3 caching ruby-on-rails ruby-on-rails-3
我有一个运行良好的rails博客应用程序.但是,我做了一些缓存实验,尽管已经恢复到以前的版本,但这里仍有问题.
似乎所有页面都在缓存中或类似的东西(我已经清理了我的浏览器缓存),因为服务器日志没有显示任何获取数据库.
关于如何解决这个问题的任何线索?谢谢!
问题可能是你正在使用这样的页面缓存:
class ProductsController
caches_page :index
def index
@products = Product.all
end
end
Run Code Online (Sandbox Code Playgroud)
这实际上会在/ public目录中创建一个名为products.html的文件,因此,即使是访问Rails堆栈,也会呈现此文件.清除浏览器缓存无法解决问题,因为该文件存储在服务器上.有两种方法可以使此缓存失效.
第一个是创建清除缓存的操作,然后在要清除缓存时调用该操作:
class ProductsController
def clear
expire_page :action => :index
end
end
Run Code Online (Sandbox Code Playgroud)
第二种方法是简单地从命令行(bash)中删除.html文件:
rm public/products.html
Run Code Online (Sandbox Code Playgroud)
由于这个原因,页面缓存令人困惑.很难判断页面实际缓存的时间和存储位置.
PS:如果您没有使用页面缓存,那么您可以使用以下命令清除整个memcached cahce或内存缓存:
Rails.cache.clear
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2090 次 |
最近记录: |