1

我正在努力解决 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 服务器提供第二次访问。

有什么想法吗?有人有类似的问题吗?

4

0 回答 0