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

Loading different Javascript files in Rails based on environment

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

是否最好生成一个 application.js.erb,它是根据我们 运行 所处的环境动态生成的,还是我遗漏了什么?

谢谢

What is the best way to load a different JavaScript file based on your environment (production or development) in Rails 3.2?

在您的应用程序布局中,您可以像这样添加特定于环境的 js 文件:

<% if Rails.env.development? %>
  <%= javascript_include_tag 'development.js' %>
<% end %>

或更简洁的方式:

<% javascript_include_file "#{RAILS_ENV}.js" %>

您可以通过创建特定的 js 文件并在 application.js.erb:

中要求以另一种方式实现相同的结果

env_config.js.erb

<%= Rails.env.production? ? 'productionConf();' : 'regularConf();' %>

application.js.erb

//= require env_config
//= require jquery
...

不是加载不同的js文件,而是根据不同的环境设置一个变量

我建议使用 gon 它是将 rails 变量导入 js 的简单方法。

设置完成后,在您的控制器中执行以下操作:

before_filter :set_gon_env

def set_gon_env
  gon.rails_env = ENV['RAILS_ENV'] == 'development' ? "dev" : "not dev"
end