打开turbolink

时间:2015-06-27 12:25:28

标签: ruby-on-rails ruby ruby-on-rails-4 turbolinks

在我预编译资产并将其上传到CDN后,我决定开启turbolinks。在我预编制资产之前,它们已经开启了,我在Gemfile中有gem turbolinks而在require turbolinksapplication.js但在application.html我有data-no-turbolink而不是data-turbolinks-track" => true

现在我将其更改为data-no-turbolinkdata-turbolinks-track" => true并期望它们在我本地计算机上的生产中工作,但似乎它们不是。从视觉上看,他们似乎没有工作,并且"发起人"在浏览器中不是涡旋链接。

我不想重新编译资产,如果它不是真的需要,因为将它们重新上传到CDN需要花费很多时间。

所以我必须重新编译它们吗?或许我只是没有注意到他们已经在工作了?

2 个答案:

答案 0 :(得分:1)

data-turbolinks-track仅用于资产跟踪(以确保加载的资产文件是最新的)。它不会影响Turbolinks是否用于特定链接。

如果安装了turbolinks,将使用Turbolinks UJS加载任何没有 data-no-turbolink的内部链接

如果Turbolinks正在运行,以下代码将触发警报。

$(document).on('page:load', function(){ alert("Turbolinks is active"); });

答案 1 :(得分:0)

使用您提供的稀疏信息并不容易。但这里有一些值得考虑的注意事项:

关于Turbolinks

  

使用Turbolinks页面会在没有完全重新加载的情况下更改,因此您不能   依赖DOMContentLoaded或jQuery.ready()来触发你的代码。   相反,Turbolinks会在文档上触发事件以提供钩子   页面的生命周期。

你可能使用jQuery?阅读以上链接了解。一个很好的解决方案是:jQuery.turbolinks

  

...   但是如果你有一个包含大量$(el)的大型代码库.bind(...)   Turbolinks会给你带来惊喜。 JavaScripts的大部分内容都会停止   以通常的方式工作。这是因为您绑定事件的节点   不复存在。   ...