Rails资产管道和jquery插件.我错过了什么?



在Rails 3.2项目中,我有一个application.js文件,看起来像:

//= require jquery
//= require jquery.hoverIntent
//= require jquery_ujs
//= require my_custom_js

在我的布局中我们只是引用了<%= javascript_include_tag 'application' %>

my_custom_js.js中的代码实际上使用了jquery.hoverIntent.js的插件,但是当我加载页面时,我得到一个javascript错误,说对象上没有这样的hoverIntent函数,即使我可以检查元素并看到对现有文件的健康引用。

这里的关键是,如果我把这两个引用移出application.js,它加载得很好。例如:
<%= javascript_include_tag 'application' %>
<%= javascript_include_tag 'jquery.hoverIntent' %>
<%= javascript_include_tag 'my_custom_js' %>

我在这里错过了什么?

在您的/layouts/application.html.erb中,将这些代码片段添加到您的head部分以加载jquery。

<%= javascript_include_tag "jquery" %>
<%= javascript_incldue_tag 'jquery.hoverIntent' %>
<%= javascript_incldue_tag 'my_custom_js' %>

这将加载jquery到你所有的页面。

如果你需要更多关于application.js为什么不能工作的信息,请阅读这篇文章。我唯一的想法是你的插件不命名为jquery.hoverIntent或你的路径是错误的。

OK。我明白了,我觉得自己很蠢。资产管道按预期工作,但我之前已经预编译了资产,它提供了一个先前预编译的application.js,它正在重新加载jQuery,但没有插件。

最新更新