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的主要内容,如果未能解决你的问题,请参考以下文章

php 显示相同分类中的相关自定义帖子 - 仅在单页上显示

除非使用 turbolinks 和 rails 4 重新加载页面,否则 javascript 不会执行

带有 Rails 4.2.0 的 Fotorama jQuery Gallery(Turbolinks 问题)

Turbolinks 不适用于 Rails 4.2.4 Ruby 2.2.4 中的 bootstrap select2

在单页应用程序中,当在 VueJs 中输入新数据时,如何在不重新加载页面的情况下重新加载 api [关闭]

升级 turbolinks 导致 css 停止加载