根据环境在Rails中加载不同的Javascript文件

Ing*_*ngo 4 javascript ruby-on-rails erb asset-pipeline

在Rails 3.2中根据您的环境(生产或开发)加载不同的Javascript文件的最佳方法是什么?我正在尝试创建一个全局(是全局)javascript变量,该变量应根据环境而有所不同。该变量由JQuery调用,但是我编写的其他一些javascript文件需要该变量。

最好application.js.erb根据我们正在运行的环境生成动态的,还是我遗漏了什么?

谢谢

Sha*_*med 5

在Rails 3.2中根据您的环境(生产或开发)加载不同的JavaScript文件的最佳方法是什么?

在您的应用程序布局中,您可以添加特定于环境的js文件,如下所示:

<% if Rails.env.development? %>
  <%= javascript_include_tag 'development.js' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

或更清洁的方法:

<% javascript_include_file "#{RAILS_ENV}.js" %>
Run Code Online (Sandbox Code Playgroud)

您可以通过创建特定的js文件并在application.js.erb中要求该文件,以另一种方式获得相同的结果:

env_config.js.erb

<%= Rails.env.production? ? 'productionConf();' : 'regularConf();' %>
Run Code Online (Sandbox Code Playgroud)

application.js.erb

//= require env_config
//= require jquery
...
Run Code Online (Sandbox Code Playgroud)