我正在使用Ruby on Rails 5并使用turbo-link,如下所示:
<%= javascript_include_tag 'custom-plugins', 'data-turbolinks-track' => true %>
Ruby On Rails 4工作正常,但Ruby on Rails版本5有问题。一旦我点击后面,js / css没有正确加载。
任何帮助将不胜感激。
答案 0 :(得分:2)
Turbolinks自4版以来一直是Rails的一部分,可能是人们讨厌或喜爱的功能之一;这里没有中间地带。
使用Rails 5,我们将收到一个新版本,在HTML5自定义数据属性的帮助下,我们期望在Rails应用程序中获得更好的速度和渲染。
此新版本中最重要的更改是部分替换功能。从客户端,我们将能够告诉Turbolinks我们需要更改/替换哪些内容以及我们不需要哪些内容。
Turbolinks将寻找HTML5自定义属性,并在我们的
中决定替换策略要在客户端触发替换,我们可以使用或更新我们的。和之间的区别在于,第一个将发送给服务器以获取必须用于替换我们的HTML,同时期望从我们这里获得应该用于其操作的HTML。
使用这两个函数,我们可以将带有一个或一组HTML元素的哈希传递给或。
Action Result
Turbolinks.visit(url, { change: ['entries'] }) Will replace any element with custom attribute and any element with its id listed in change.
Turbolinks.visit(url) Will keep only elements with custom attribute and replace everything.
Turbolinks.visit(url, { keep: ['flash'] }) Will keep only elements with custom attribute and any element with its id listed in keep, everything else will be replaced.
Turbolinks.visit(url, { flush: true }) Will replace everything
我们可以从服务器端触发相同的功能,并且可以接收和作为选项,但也可以使用或不使用Turbolinks接收或强制重定向。
无论您是否喜欢Turbolinks,这可能是试用并了解它是否适合您应用中某个地方的好时机。
答案 1 :(得分:1)
对于带有js的turbolinks来说,这是常见的事情。 Turbolinks可以更快地加载特定页面。但它的作用是阻止js有时起作用。因此,在加载此特定页面时,请使用此行
<%= link_to "example_page", example_page_path, :"data-no-turbolink" => true %>
或 在你的布局中写下这个
<body <%= "data-no-turbolinks='true'".html_safe if controller_name=="example_controller" && action_name=="example_page" %>>
阻止turbolink在此特定页面中工作。