如何在Rails 3.2中不将所有js合并到一个文件中?

时间:2013-07-25 14:07:26

标签: javascript ruby-on-rails configuration

我使用Rails 3.2。我使用了很多JS宝石,其中大部分需要按特定顺序调用。在开发中,它会自动分离不同的JS文件,如下所示:

<link href="/assets/companies.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/contacts.css?body=1" media="all" rel="stylesheet" type="text/css" />
<link href="/assets/fake_json.css?body=1" media="all" rel="stylesheet" type="text/css" />

但是在生产中它合并了所有这样的文件:

<script src="/assets/application-e30cf15d1afc4b59752074fa16cd83a3.js" type="text/javascript"></script>

在我的具体情况下,我不希望或要求Rails为我这样做。我尝试在config.assets.compress = false文件中使用config.assets.debug = trueproduction.rb取消此操作,但即使重新启动服务器也无效。

如何在生产中启用“不合并”?

3 个答案:

答案 0 :(得分:1)

如果你不希望它们全部合并的原因是它们需要按特定顺序加载,并且默认是按字母顺序编译它们,你可以摆脱

require_tree

在application.js中行,并按照您需要的顺序写出单独的require语句。

答案 1 :(得分:0)

您可以将以下行添加到production.rb

config.assets.compile = false

检查Configuring Rails guide是否有其他有用的参数。

答案 2 :(得分:0)

你在视图中可能有一个javascript_include_tag :application, :defer => true, :debug => false吗?

您的问题帮助我解决了类似的问题(+1)。我需要在config.assets.debug = true中设置development.rb,在<%= javascript_include_tag :application, :defer => true, :debug => true %>设置shared/_settings.html.erb