Ruby on rails 理解辐射缓存

Ruby on rails 理解辐射缓存,ruby-on-rails,radiant,Ruby On Rails,Radiant,在尝试了更多之后,我对Radiant如何与Rack Cache一起工作感到非常困惑。据我所知,Radiant仅使用Rack::Cache到服务器作为客户端缓存的一种方式。这样Rack::Cache将检查客户端副本是否仍然新鲜,然后决定是否需要再次从Radiant项目生成内容。如果是这样的话,Radiant只需要在/tmp/cache/meta文件夹中存储etag之类的元信息,但是为什么还要存储实体信息,在那里可以找到完整的html、css等 除非辐射缓存也用作客户端缓存。假设一个页面已经由用户a

在尝试了更多之后,我对Radiant如何与Rack Cache一起工作感到非常困惑。据我所知,Radiant仅使用Rack::Cache到服务器作为客户端缓存的一种方式。这样Rack::Cache将检查客户端副本是否仍然新鲜,然后决定是否需要再次从Radiant项目生成内容。如果是这样的话,Radiant只需要在/tmp/cache/meta文件夹中存储etag之类的元信息,但是为什么还要存储实体信息,在那里可以找到完整的html、css等

除非辐射缓存也用作客户端缓存。假设一个页面已经由用户a提供服务,然后用户B进入,如果该页面仍然“新鲜”,尽管他以前没有提供过该页面,但该页面将直接从缓存(从实体文件夹)提供

我尝试在生产模式下运行radiant项目,当我第一次提供页面时,生产日志将显示请求,但是我刷新页面时,生产日志不会显示任何请求。这应该是正确的,因为页面请求状态为304 Not Modified,所以根本不会到达辐射项目。但是,如果我执行强制刷新或使用其他浏览器请求页面,生产日志也不会显示请求,尽管它显示状态为200 OK。所以我可以说Radiant也作为服务器缓存工作,这意味着内容被缓存在服务器端,只要没有过期,不同的请求就可以从这个缓存发送到服务器

我发现了这个讨论,但其他人似乎也在说Radiant也只能作为客户端缓存使用。看起来和我发现的不一样


非常感谢。

我最后回答了我自己的问题,我写了一篇详细的文章