我在Fastly和我正在使用的rails应用程序上遇到缓存失效问题。我正在使用fastly-rails gem并确认CNAME设置正确。问题基本上是这样的:
当缓存中没有记录时,会从Fastly缓存并正确提供页面。资源代理键在之前的操作中使用fastly-rails设置...
class SchoolsController < ApplicationController
before_action :set_cache_control_headers, only: [:index, :show]
...
def show
@school = School.find(params[:id])
...
set_surrogate_key_header @school.record_key
end
从那里开始,页面被缓存,下一次访问是从Fastly服务器提供的。现在,在我的active-admin控制器操作中,我调用了在进行任何更新之后使缓存中的记录无效:
ActiveAdmin.register School do
...
def update
super
@school.purge
end
end
这最终会最终导致Fastly&#39结束时的记录失效,但是,当我访问URL / schools /:resource_slug时,我仍然可以从Fastly中获取陈旧内容,但如果我访问/学校/:我是从应用程序正确提供,然后从Fastly服务器提供第二次访问。
有什么想法?任何人都有类似的问题吗?