Ruby on rails Rails 3.2:在application.js.erb中需要不同的js文件
如何在Rails 3.2中的application.js.erb中要求不同的文件?我尝试了以下方法,但没有成功Ruby on rails Rails 3.2:在application.js.erb中需要不同的js文件,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.1,asset-pipeline,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.1,Asset Pipeline,如何在Rails 3.2中的application.js.erb中要求不同的文件?我尝试了以下方法,但没有成功 <% if Rails.env == production %> //= require production_config.js <% else %> //= require other_config.js <% end %> //= require jquery //= require jquery_ujs //=需要生产配置.js
<% if Rails.env == production %>
//= require production_config.js
<% else %>
//= require other_config.js
<% end %>
//= require jquery
//= require jquery_ujs
//=需要生产配置.js
//=需要其他_config.js
//=需要jquery
//=需要jquery\u ujs
您的示例将无法工作,因为资产:预编译
在erb转换为clean js之前。而且你有错误的语法。什么是/=require'production\u config.rb'
?可能是'production\u config.js'
。但是你不应该在资产评论中写引号和文件扩展名
您可以编写config.js.erb文件,并在其中写入如下内容:
<% if Rails.env == production %>
productionConfig();
<% else %>
otherConfig();
<% end %>
您可以这样做,但需要在application.html.erb中包含代码(我建议在head操作中) 如果将production_config.js文件添加到“asset/javascript”文件夹中,则可以使用以下方法添加该文件:
<% if Rails.env == production %>
<%= javascript_include_tag "production_config" %>
<% else %>
<%= javascript_include_tag "other_config" %>
<% end %>
请确保不要将其称为production\u config.js.coffee(它们会自动绑定),也不要将其添加到application.js中。链轮需要从文件开始设置
/=require
语句,因此它们无法工作
在这种情况下,您可以使用ruby方法:
另外,最好在单独的文件中进行。大概是这样的:
<% if Rails.env == production %>
productionConfig();
<% else %>
otherConfig();
<% end %>
application.js
//= require 'config'
//= require 'jquery'
config.js.erb
<% require_asset(Rails.env.production? ? 'production_config' : 'other_config') %>
<%
paths = %w(config/settings.yml config/settings.local.yml config/settings)
paths.map(&Rails.root.method(:join)).each { |full_path| depend_on(full_path) if File.exist?(full_path) }
%>