【问题标题】:troubleshooting TurbolinksTurbolinks 故障排除
【发布时间】:2013-07-15 05:41:39
【问题描述】:

我在 Rails 3 中有一个遗留项目。升级到 Rails 4 时,我想测试 turbo 链接,但似乎无法让它工作。我已将“turbolinks”gem 添加到 Gemfile,bundle install,并将 //= require turbolinks 添加到 app/assets/javascripts/application.js,然后重新启动服务器。

从 Chrome 中的网络请求活动中可以看出,所有页面仍会进行整页刷新。

编辑:我遵循了其中一个答案中建议的小型 Turbolinks 测试。我添加了一个空白演示控制器,以及 page1、page2 视图。如果 Turbolinks 工作正常,则应该将 turbolinks 视为网络请求的发起者,并且不应加载 test.js。

小例子失败,因为test.js在尝试加载,有整页刷新,发起者依然不是turbolinks。

page1.html.erb

<html>
  <title>Page 1</title>
  <body>
    <h1>Page 1</h1>
    <a href="/test_turbo/page2">Page 2</a>
  </body>
</html>

page2.html.erb

<html>
  <title>Page 2</title>
  <script type="text/javascript" src="test.js"></script>
  <body>
    <h1>Page 2</h1>
  </body>
</html>

【问题讨论】:

    标签: ruby-on-rails turbolinks


    【解决方案1】:

    看看这个Turbolinks screencast

    整个页面仍然被渲染并返回给浏览器,但只替换了正文。

    您可以通过设置两个页面来检查它们是否正常工作。第 2 页应该加载,但是当您检查页面的标题时,它不应该包含测试 javascript 文件。如果它仍然不起作用,请告诉我们。

    第 1 页

    <html>
      <title>Page 1</title>
      <body>
        <h1>Page 1</h1>
        <a href="/page2">Page 2</a>
      </body>
    </html>
    

    第 2 页

    <html>
      <title>Page 2</title>
      <script type="text/javascript" src="test.js"></script>
      <body>
        <h1>Page 2</h1>
      </body>
    </html>
    

    【讨论】:

    • test.js 已加载,因此未使用 Turbolinks。我将它放在演示控制器中,并将 page1.html.erb 和 page2.html.erb 添加到视图中。应用程序现在没有使用资产管道,这与此有关吗?
    • 想通了。资产被错误地从开发环境中的 public/assets/application.js 加载,而不是从 app/assets/javascripts/application.js 加载 turbolinks。
    猜你喜欢
    • 1970-01-01
    • 2010-11-30
    • 2021-09-11
    • 2012-02-18
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多