2012-09-21 197 views
7

我想使用JavaScript库,如jQuery插件。我是否使用Rails资产管道?或者我应该包含一个javascript_include_tag?我有什么选择,建议的做法是什么?Rails:包含外部JavaScript

回答

24

您只会在几页或整个应用程序中使用JavaScript库吗?如果您将在整个应用程序中使用它,请将资产管道添加到供应商/ assets/javascripts文件夹中。如果您打算在单个页面上使用库,请使用javascript_include_tag

以下是经验法则来指导你的JavaScript的使用Rails的:

  • 有条理地组织网站全脚本在应用程序/资产/ Java脚本/文件夹。

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

  • app/assets/javascripts/application.js清单中列出整个站点的脚本。

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

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

  • 将页面特定的JavaScript放到lib/assets/javascripts文件夹中。

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

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

Including External JavaScript Files in Rails

+1

特定于页面的js应该放在app/assets /中,并使用与视图相同的目录结构进行组织。 lib /名义上用于跨应用程序共享的资产 – klochner

2

对单个文件访问的Javascript,javascript_include_tag是最好的选择。

由于你可以做的事情是太''''config/initializers/assets.rb'文件。