1

我正在使用 Rails 3.2.1,我必须包含一些控制器和特定于操作的 Javascript。为此,我使用 a_javascript_template_manager.html.haml并在页面底部调用它。现在我想将所有这些js合二为一,以减少http请求。我正在使用资产管道。

如何将特定于控制器的 js 合并到一个预编译文件中?

这是我的_javascript_template_manager.html.haml 文件的样子

 %noscript
  :css
    #container{ display:none; }
  = render :partial => "/widgets/common/javascript_disabled"


= jquery_include_tag :google 
= javascript_include_tag "common"

/ condetional javascripts for the app
- if params[:controller] == "settings"
  = javascript_include_tag "plugins/jQuery-cookie"

- if params[:controller] != "people" and params[:controller] != "companies"
  = javascript_include_tag "plugins/iphone-style-checkboxes"

- if params[:controller] == 'users' || params[:controller] == 'companies'
  = javascript_include_tag "plugins/best_in_place"

- if params[:controller] == 'letters' || params[:controller] == 'companies'
  = javascript_include_tag "plugins/jquery.autoSuggest"

- if params[:controller] == 'people' || params[:controller] == 'letters' || params[:controller] == 'users' || params[:controller] == 'companies'
  = javascript_include_tag "plugins/areacomplete"

= javascript_include_tag "application"

现在我想将上述所有 javascript 文件合并为一个,或者最好的方法是什么?

4

1 回答 1

0

首先,阅读控制器特定资产。然后你必须在你的控制器特定的 JS 文件中要求所有必要的文件。例如,在app/assets/javascripts/settings.js您将添加:

//= require plugins/jQuery-cookie

设置完这一切后,你就不用担心请求太多了,因为资产管道会自动将所有内容压缩到一个 JS 文件中。

于 2013-07-30T13:51:06.027 回答