我正在开发 Rails 3.1 应用程序,我很困惑我应该在哪里放置自己的javascript代码(例如 my.js )以及在哪里放置第三方javascript库(例如 jQuery-UI )。
我知道在旧版本的Rails中,javascript应该全部进入 public / javascripts / 目录,当我生成Rails 3.1应用程序时,没有 public / javascripts / 文件夹,但 app / assets / 和 verndor / assets / , app / assets中有 application.js ,我想问一下:
----------------我是对的吗?----------
application.js中的require_tree
用于包含 app / vendor / assets / javascript /
和 application.js 中的require "something"
用于在 app / assets / javascripts / 下包含js文件?我是对的吗?
答案 0 :(得分:7)
放置自己的javascript& app/assets/javascripts
下的coffeescript。
查看app/assets/javascripts/application.js
内部。当您运行rails new APP
时,它应该已将//= require_tree .
添加到此文件中。 See section 2.3 for more
这是Sprockets理解的特殊说明,它会自动包含与application.js
文件位于同一目录中的所有文件及其下方的子文件夹。
如果你想加载jquery和jquery-ui,你的application.js文件看起来应该是
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require_tree .
如果您的捆绑包中有gem 'jquery-rails'
,则此gem已经将jquery文件添加到资产管道中,因此您不必担心手动下载它们。
在应用程序视图的head部分中,您需要在head部分中包含javascript_include_tag "application"
。如果您使用发电机,那么机会已经存在。
请阅读Rails Asset Pipeline了解详情。
.
行中的require_tree
引用了当前文件的位置。 //=
运算符正在引用资产管道。
将文件放在app / assets,lib / assets或vendor / assets中会将其添加到资产管道中。 See section 2.1
答案 1 :(得分:5)
Ryan Bates对Railscasts上的资产管道有一个很好的概述。当我试图解决它时,它帮助了我。 http://railscasts.com/episodes/279-understanding-the-asset-pipeline