Turbolinks 加载事件从未在全新的 Rails 5.1 应用程序中触发

Turbolinks load event never firing in brand new Rails 5.1 app

出于某种原因,Turbolinks 没有在我的应用程序中触发加载事件,这是一个全新的、最近创建的应用程序。

我使用 rails new(特别是 rails new prueba -C -d postgresql --skip-coffee --no-api)创建了一个全新的 Rails 5.1 应用程序 (5.1.4)。此命令自动配置 Rails 以使用 Turbolinks,无需进一步手动配置。

然后我为模型创建了一个脚手架 (bin/rails g scaffold Thing name),只是为了导航到一些页面。

最后,我创建了一个包含以下内容的文件app/assets/javascripts/test.js

document.addEventListener("turbolinks.load", function() {
  console.log("Turbolinks loaded")
});

运行迁移后,我 运行 开发中的服务器 (bin/rails s),浏览(尝试使用 Chrome v62 和 Firefox v57),并检查开发人员工具控制台,但没有看到 "Turbolinks loaded" 消息,我什么也没得到:

根据 Turbolinks README:

[...] the turbolinks:load event, which fires once on the initial page load and again after every Turbolinks visit.

因此我希望每次都能在控制台中看到消息 "Turbolinks loaded"。

有什么想法吗?

根据您的代码,您大多错过了事件名称。您使用 turbolinks.load,而实际上它是 turbolinks:load。查看此 url 了解更多详情 -- https://github.com/turbolinks/turbolinks#running-javascript-when-a-page-loads