【问题标题】:Turbolinks for Rails not activeRails 的 Turbolinks 未激活
【发布时间】:2012-11-28 21:12:57
【问题描述】:

我正在尝试让 Turbolinks 与我的 Rails 3.2 应用程序一起使用,但没有成功。当我点击链接时,我仍然会在 Chrome 和 Firefox 中重新加载整页。

  1. 我在Gemfile 中包含了turbolinks gem,并在application.js 文件中需要它。
  2. 我应该补充一点,我运行Twitter Bootstrap 2.2.1.1,并且所有非引导/rails javascript 都被禁用。

在 Chrome 开发人员工具中,我可以看到 turbolinks.js 以及所有其他文件已加载。关于为什么 turbolinks 在我的应用中未激活的任何建议?

【问题讨论】:

  • 你重启服务器了吗?
  • 我觉得奇怪的是 turbolinks.js 已加载但它什么也没做。
  • "all non-bootstrap javascript is disabled" 可以解释为什么需要使 turbolinks 工作的 JS 没有运行。你试过什么?你签出Ryan Bates' Railscast on Turbolinks。我们可以看一个代码示例吗?
  • @tharrison:对不起,应该更清楚,我的意思是其他页面特定的 js,在这种情况下是 d3.js。我看过 Ryan 的 railscast 并密切关注它,但可能还不够近......
  • 我在 Chromium 18 (wattOS) 上运行时遇到了同样的问题,想知道这是否是浏览器版本问题。

标签: ruby-on-rails ruby ruby-on-rails-3


【解决方案1】:

如果您使用的是引导模板,则 javascript(默认情况下)不会放在页面的 <head> 元素中。

我能够使用 Rails 3.2.11、turbolinks 1.0 和默认引导模板作为我的应用程序布局重现该问题

如果您将 <%= javascript_include_tag "application" %> 从布局底部(通常在 </body> 上方移动到 <head> 元素内的某个位置,那么一切都应该开始工作了。

一个。

【讨论】:

    【解决方案2】:

    如果我是你,我会先禁用引导程序来隔离问题。因此可能会出现一些奇怪的问题。查看 Yehuda Katz 在 Turbolinks 上的博文,您会发现一些可能存在的问题。

    但是,从您的帖子中,我不清楚问题是什么。如果是特定于页面的 js 没有被加载,这可能是因为 turbolinks 没有在您的 rails 视图中重新加载 :head 。

    查看在 Turbolinks README.md 文件中调用 (page:load), (page:change) 并以这种方式加载内容?此外,对于某些可能不太适合 turbolinks 的页面,您可以传递数据标签以在该特定页面上禁用它。

    【讨论】:

      【解决方案3】:

      就我而言,我有一件奇怪的事情:

      Turbolink 与 firefox 和 safari 配合得很好;但它不适用于 chrome:我有一个完整的页面重新加载,由网络检查员确认。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-31
        相关资源
        最近更新 更多