rails turbolinks 在单页上加载 javascript
Posted
技术标签:
【中文标题】rails turbolinks 在单页上加载 javascript【英文标题】:rails turbolinks load javascript on single page 【发布时间】:2013-08-27 15:14:56 【问题描述】:我有一个使用 turbolinks 的 rails 应用程序
一页我应该加载脚本,我不想在所有应用程序上加载它
具体添加到页面上
<% content_for :head do %>
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<% end %>
我的问题是当我通过 turbolinks 进入页面时,脚本没有加载
如何在特定页面上加载单个 js
谢谢!
【问题讨论】:
与user3631047的回答相反,您应该尝试在script
标签中添加data-turbolinks-track="true"
。我遇到了类似的情况,这样做解决了这个问题。
【参考方案1】:
Turbolinks 不会更新 head
。这就是优势所在。无需重新加载磁头,加载速度会快得多。这就是你的content_for :head
不起作用的原因。
对于您的情况,最简单的解决方案是将脚本标记直接放在页面模板上。
【讨论】:
但是如果我多次进入同一个页面会发生什么?每次脚本都会被加载?【参考方案2】:也许将data-no-turbolink
添加到您的script
标签可以帮助您。
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false" data-no-turbolink></script>
【讨论】:
以上是关于rails turbolinks 在单页上加载 javascript的主要内容,如果未能解决你的问题,请参考以下文章
除非使用 turbolinks 和 rails 4 重新加载页面,否则 javascript 不会执行
带有 Rails 4.2.0 的 Fotorama jQuery Gallery(Turbolinks 问题)
Turbolinks 不适用于 Rails 4.2.4 Ruby 2.2.4 中的 bootstrap select2