我正在努力解决 Fastly 和我正在使用的 Rails 应用程序上的缓存失效问题。我正在使用 fastly-rails gem 并确认 CNAME 设置正确。问题本质上是这样的:
当缓存中没有记录时,Fastly 会缓存并正确提供页面。资源代理键是在操作前使用快速轨道设置的...
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 的记录失效,但是,当我访问 URL /schools/:resource_slug 时,我仍然会收到 Fastly 的陈旧内容,但如果我访问 /schools/:id,我会从应用程序中正确获得服务,然后Fastly 服务器提供第二次访问。
有什么想法吗?有人有类似的问题吗?