You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails/Hotwire:禁止在恢复访问时缓存Turbo Frame

解决Turbo Frame恢复访问时强制重新加载的问题

方法1:给Turbo Frame添加专属缓存禁用属性

直接在你的Turbo Frame标签上加上data-turbo-cache="false"属性,Turbo就会跳过对这个Frame内容的缓存,每次恢复访问页面时,都会自动从src指定的URL重新加载内容。
示例代码:

<turbo-frame id="your-frame-id" src="/your-content-path" data-turbo-cache="false">
  <!-- 可选的加载占位内容 -->
</turbo-frame>

方法2:通过事件监听手动触发刷新

如果需要更灵活的控制逻辑(比如只在特定条件下刷新),可以监听Turbo的turbo:restore事件,在页面被恢复访问时,手动调用Frame的reload()方法强制刷新。
示例代码:

document.addEventListener('turbo:restore', () => {
  const targetFrame = document.getElementById('your-frame-id');
  if (targetFrame) {
    targetFrame.reload();
  }
});

方法3:全局禁用Turbo缓存(不推荐)

如果你的场景需要所有Turbo Frame都不缓存,可以全局配置Turbo的缓存选项,但这种方式会影响整个应用的Turbo缓存逻辑,除非必要不建议使用:

Turbo.setOptions({ cache: false });

内容的提问来源于stack exchange,提问作者Manuel Meurer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 20:58:10