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

如何用Hotwire(Stimulus/Turbo/Rails)重载Turbo Frame?

解决Turbo Frame重载不生效的问题
  • 直接调用Turbo Frame原生reload方法
    Turbo Frame元素自带reload()方法,无需手动修改src,直接调用就能触发重载:

    reload() {
      this.element.reload();
    }
    
  • 添加缓存破折号绕过Turbo缓存
    若坚持用修改src的方式,可在URL后追加随机参数避免Turbo复用缓存的响应:

    reload() {
      const originalSrc = this.element.src;
      const timestamp = Date.now();
      const newSrc = originalSrc.includes('?') 
        ? `${originalSrc}&_=${timestamp}` 
        : `${originalSrc}?_=${timestamp}`;
      this.element.src = newSrc;
    }
    
  • 检查Stimulus绑定是否正确
    确认Turbo Frame标签已正确绑定你的Stimulus控制器:

    <turbo-frame id="user-search" src="/user_search" data-controller="user-search">
      <!-- 用户列表内容 -->
    </turbo-frame>
    
  • 后端响应验证
    确保控制器返回的HTML包含与页面中一致id的<turbo-frame>标签,Turbo仅会更新匹配id的Frame内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 03:07:23