【问题标题】:Why does the rails 3 application.js file state that it's not advisable to add code there?为什么 rails 3 application.js 文件声明不建议在其中添加代码?
【发布时间】:2012-02-25 08:26:10
【问题描述】:
在 Rails 3 中,application.js 文件被移动到 assets>javascripts>application.js 在这个文件中有预加载的 cmets 声明:
在此目录的单独文件中添加新的 JavaScript/Coffee 代码,它们会自动
包含在可从http://example.com/assets/application.js 访问的编译文件中
不建议直接在此处添加代码,但如果这样做,它会出现在底部
编译后的文件。
但是,在许多教程(如 railscasts)中,他们一直将代码添加到 application.js 文件中。当 application.js 仍在公用文件夹中时,这又回来了。这段代码不应该在 rails 3 的 application.js 中吗?提前致谢
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
railscasts
【解决方案1】:
我想这取决于应用程序。如果您的应用程序只有几行 javascript,我不会将 JS 放在单独的文件中。然而,对于较大的应用程序,为应用程序的每个较大区域创建一个文件是有意义的。
此外,您仍然可以始终不包含所有 JS,即,如果您有管理部分,则可以使用 javascript_include_tag 在应用的相关部分中仅包含 admin.js。
【解决方案2】:
这只是编码方便。如果你把所有东西都放在一个文件中(application.js),从长远来看它会很乱,你会后悔的。
但在教程中,人们只是想让事情变得更快,所以他们将所有代码放入 application.js
【解决方案3】:
首先我们是在谈论 Rails 3.1 后的 application.js 吗?如果是,那么我会说直接在 application.js 中编写代码不是一个好主意
归根结底,您的资产将被预编译,并且您的所有 JS 都将被缩小为单个 application.js
所以我认为为了保持你的代码干净,你可以在各自的文件中编写相关的 javascript,并且可能希望通过在 application.js 中明确提及它们来更改加载顺序