【发布时间】:2021-06-10 11:40:38
【问题描述】:
我正在使用 Rails 6 模板 (Jumpstart Pro),其中包含新的东西 hotwire、stimulus、webpacker。它适用于基本的东西......搭建新模型和制作 CRUD 表单等。
但是我的一个页面使用了供应商的 javascript 小部件,这也需要 jquery。
Jumpstart Pro 模板及其论坛都没有任何最新文档或支持通过 webpacker 添加 jQuery(例如,不支持以“正确方式”添加 jquery)。
所以我通过页眉中的老式脚本标签将 jquery 添加到需要它的页面中
%script{:src => "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"}
接着是供应商的 javascript 来初始化供应商的小部件,在 $(document).ready(function(){ init_code_goes_here }); 内,因此小部件有时间加载到页面。
工作:如果我在浏览器“localhost:5000/cool_page”或“mydev.ngrok/cool_page”中键入页面的网址,它工作正常。
损坏:但在应用程序中单击链接以转到页面(通过link_to "cool page", "/cool_page")不起作用:
- jQuery 已加载(我有一个小“hello world”jquery 脚本,可以取消隐藏 div 以确认 jquery 已加载)
- 供应商小部件未正确加载(浏览器控制台显示小部件对象为空)
但如果我随后刷新页面,一切都会正常加载。
因此,如果“加载”了该页面,但它不能通过另一个页面到达。
由此我推断,当我导航到它时,hotwire/etc 背后的魔力会干扰页面的正确加载。
那么,问题来了:在一个支持热线的 Rails 6 应用程序中,有没有办法有一个导航链接,当点击它时,它只会告诉 Rails...跳过热线快捷方式,加载这个页面真实?
【问题讨论】:
-
您是否在链接上尝试了`data-turbo="false"`? (turbo.hotwire.dev/handbook/…)
标签: ruby-on-rails turbolinks hotwire-rails