Turbolinks加载事件永远不会在全新的Rails 5.1应用程序中触发

时间:2017-11-25 07:58:43

标签: ruby-on-rails turbolinks

由于某些原因,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),并检查开发人员工具控制台,但不是看到&#34 ; Turbolinks装载"消息,我一无所获:

  • 当我访问/things时,控制台为空
  • 如果我重新加载同一页面,则控制台仍为空
  • 如果我遵循"新事物"链接,控制台仍然是空的
  • 如果,在"新事物"第一页跟随"返回"链接,控制台仍然是空的

根据Turbolinks README

  

[...] turbolinks:加载事件,它会触发一次   初始页面加载,并在每次Turbolinks访问后再次加载。

因此,我希望看到消息" Turbolinks已加载"每次都在控制台中。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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