【问题标题】:javascript loading only after refreshing pagejavascript 仅在刷新页面后加载
【发布时间】:2013-10-28 12:53:55
【问题描述】:

我正在使用 Rails 4。我有一个 javascript 文件 app/assets/javascripts/exotic_fonts.js,它为字体添加了一些 javascript 功能。当我加载主页时,这个 javascript 文件会自动加载到主页上,但是它不会自动加载到 /user/show 等其他页面上,并且缺少该功能。但是,如果我刷新页面,则会加载 javascript 文件并恢复功能。我想知道如何解决它。

另外,是否可以在某个页面上仅加载部分 javascript 文件?

谢谢。

【问题讨论】:

  • 你在使用turbolinks吗?
  • 是的,我认为 Rails 4 默认使用 turbolinks。
  • Turbolink 可能会导致 JavaScript 出现问题。我建议你关掉它,看看问题是否仍然存在。如果您决定继续使用它,请查看此页面:reed.github.io/turbolinks-compatibility
  • 是的,它奏效了。谢谢。

标签: javascript ruby-on-rails ruby-on-rails-4 asset-pipeline


【解决方案1】:

您可以使用以下 sn-p 来解决此问题。现在您的 js 代码将与 turbolinks 一起使用。

ready = ->

// Your javascriptcode goes here

$(document).ready(ready)
$(document).on('page:load', ready)

【讨论】:

  • 您好 Murtza,感谢您的回答。我试过了,但没有用。尽管我在 ready 函数中包含了所有的 javascript,但唯一的解释是我可能遗漏了一些东西。我尝试了 jquery.turbolinks gem,一切正常。使用 jquery.turbolinks 有缺点吗?谢谢。
最近更新 更多