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

Rails 7.1.3.2与Turbo-Rails 2.0.4:悬停链接触发GET请求求助

Rails + Turbo 链接悬停触发GET请求的问题解决

原因

这是Turbo的预加载机制在起作用。Turbo默认会对带有data-turbo-frame属性的链接,在鼠标悬停时自动发送GET请求预加载页面内容,以此提升后续点击时的加载速度。你排查到的turbo.es2017-esm.js:3135里的mouseenter事件,就是这个预加载逻辑的触发入口。

解决办法

1. 单个链接禁用预加载

给目标链接加上data-turbo-preload="false"属性,直接关闭该链接的预加载:

<%= link_to "Edit", edit_post_path(@post), class: "hover:text-black flex-none", data: { turbo_frame: :resource_frame, turbo_preload: false } %>

2. 全局关闭所有预加载

如果不需要整个应用的预加载功能,在Turbo初始化代码里配置:

// app/javascript/application.js
Turbo.setPreloadMethod(null);

3. 针对特定Turbo Frame禁用

要是只想让某个Turbo Frame下的链接不触发预加载,给Frame标签加data-turbo-preload="false":

<%= turbo_frame_tag :resource_frame, data: { turbo_preload: false } do %>
  <!-- 该Frame内的链接不会触发悬停预加载 -->
<% end %>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 16:24:59