我正在开发一个Rails 3.2应用程序,但不知怎的,我的javascript代码被执行了两次,我不知道为什么。
我已经搜索了application.js文件,它只包含在我的资源文件夹中,而不是在我的公共文件夹中。我只有每个js文件的一个副本,所以它可能不应该归因于资产管道。
这是我的application.js文件。
//= require jquery
//= require jquery_ujs
//= require jquery_nested_form
//= require jquery.ui.all
//= require myownjs
//= require_tree .
我实际上做了一个几乎没有jquery嵌套形式的类似项目,问题不存在所以我的直觉告诉我,这可能是由于我使用的宝石反复调用我的代码或者由于我的javascript顺序包括但我不熟悉网络编程,我不确定这是否真的有意义。但是,我确实尝试删除嵌套表单的需要行,它没有什么区别。
有人可以通过建议错误来帮助我吗?
这是另一个项目的application.js.
//= require jquery
//= require jquery_ujs
//= require jquery.ui.all
//= require myowncodes
//= require_tree .
答案 0 :(得分:4)
//= require_tree .
已包含.
目录中的所有内容 - 这将是您的application.js
文件所在的目录(typicaly / app / assets / javascripts /)。我的猜测是,您列出的许多其他文件已经在该目录中,并且可以从application.js
文件中删除这些条目。
或者,如果要特别列出应加载的文件,请从application.js文件中删除//= require_tree .
。
答案 1 :(得分:2)
//= require_tree .
此行将加载application.js文件文件夹中的所有文件。要完全控制正在加载的文件,您可以删除上面的行并加载单个所需的文件,或者您可以创建子文件夹并使用
//= require_directory <sub_directory_name>
这将加载该文件夹中的所有文件。此方法仅加载您指定的文件。我建议不要使用require_tree,以便更好地控制您在应用程序中加载的文件。
在您的情况下,删除require_tree行应该可以解决您的问题。 我希望它有所帮助!!