Do Net:Rails中的HTTP调用/结果是否被缓存?

时间:2014-07-23 00:54:25

标签: ruby-on-rails ruby net-http

如果我在Rails中使用Net :: HTTP加载我网站的一部分,每次都会加载它还是会与其他页脚一起缓存?

编辑:我的意思是页脚的其余部分当前是缓存的。 Net:HTTP结果会在页脚内部呈现,也会被缓存吗?我希望每次重新加载结果。

2 个答案:

答案 0 :(得分:0)

不,Net::HTTP不会为您缓存任何内容。您必须实现缓存,或使用为您执行缓存的gem。但是根据你对Rails的处理方式,Rails可以做到这一点 - 查看片段缓存。

答案 1 :(得分:0)

自2011年起,它看起来没有,至少不是by default。还有ruby源中net / http.rb文件中的一个段,其中包含以下代码评论说:

 # The following example performs a conditional GET using the
  # If-Modified-Since header.  If the files has not been modified since the
  # time in the header a Not Modified response will be returned.  See RFC 2616
  # section 9.3 for further details.
  #
     uri = URI('http://example.com/cached_response')
     file = File.stat 'cached_response'

     req = Net::HTTP::Get.new(uri)
     req['If-Modified-Since'] = file.mtime.rfc2822

     res = Net::HTTP.start(uri.hostname, uri.port) {|http|
       http.request(req)
     }

     open 'cached_response', 'w' do |io|
       io.write res.body
     end if res.is_a?(Net::HTTPSuccess)

源文件的日期是7月9日。希望有所帮助。