Rails:包含外部JavaScript

Dan*_*hoe 12 javascript ruby-on-rails ruby-on-rails-3 asset-pipeline

我想使用JavaScript库,如jQuery插件.我是否使用Rails资产管道?或者我应该用javascript_include_tag包含它?我有什么选择,推荐的做法是什么?

Dan*_*hoe 30

您是仅在几页还是整个应用程序中使用JavaScript库?如果您将在整个应用程序中使用它,请使用资产管道将其添加到vendor/assets/javascripts文件夹.如果您打算在单个页面上使用该库,请使用javascript_include_tag.

以下是指导您在Rails中使用JavaScript的经验法则:

  • app/assets/javascripts /文件夹中逻辑组织站点范围的脚本.

  • 将外部JavaScript库(例如jQuery插件)复制到vendor/assets/javascripts文件夹.

  • 列出app/assets/javascripts/application.js清单中的站点范围脚本.

  • 让Rails资产管道将它们全部合并到一个最小化的application.js文件中.

  • 对于在访问次数较少的几个页面上使用的脚本,请加载为特定于页面的JavaScript.

  • 将特定于页面的JavaScript放在lib/assets/javascripts文件夹中.

对于特定于页面的JavaScript,请<%= yield(:head) %>在应用程序布局和<% content_for :head ... %>视图中使用.

有关所有详细信息的完整说明,请参阅我的文章:

在Rails中包含外部JavaScript文件

  • 页面特定的js应该放在app/assets /中,使用与视图相同的目录结构进行组织.lib /名义上是针对跨应用程序共享的资产 (2认同)