【问题标题】:rails turbolinks load javascript on single pagerails turbolinks 在单页上加载 javascript
【发布时间】: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"。我遇到了类似的情况,这样做解决了这个问题。

标签: jquery ruby-on-rails turbolinks


【解决方案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>

【讨论】: