基于环境在Rails中加载不同的Javascript文件

Loading different Javascript files in Rails based on environment

本文关键字:加载 文件 Javascript Rails 于环境 环境      更新时间:2023-09-26

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

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

感谢

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

在应用程序布局中,您可以添加特定于环境的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