Dav*_*ite 12 assets ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 sprockets
我想以某种方式阻止某些资产被包含在开发环境中的资产管道中.
到目前为止,我尝试过以下方法:
# app/assets/javascripts/application.js.erb
<% if Rails.env.production? %>
//= require google_analytics_snippet
<% end %>
Run Code Online (Sandbox Code Playgroud)
和
# app/assets/javascripts/application.js.erb
<% if ENV['RACK_ENV'] == 'production' %>
//= require google_analytics_snippet
<% end %>
Run Code Online (Sandbox Code Playgroud)
我似乎要实现的是//= require google_analytics_snippet线条是否出现在清单中.当我使用这些尝试的解决方案时,无论环境如何,都不会加载google_analytics_snippet.js文件中的实际代码.
有没有办法可以做到这一点?
编辑:
当我第一次发布这个问题时,我在我的例子中使用了一个名为olark.js的javascript文件.这是一个不好的选择,因为Olark有一个可以解决问题的rubygem.我已经改变了这个例子,因为我正在寻找一般的表格解决方案.
cut*_*ion 19
我查看了链轮的来源,我发现,指令预处理器总是在任何引擎之前运行.因此,不可能使用ERB或其他引擎将任何条件逻辑添加到指令部分.
UPDATE
Joshua Peek,回答我的问题:
答案是肯定的,但如果这是你想要做的:
Run Code Online (Sandbox Code Playgroud)<% if Rails.env.production? %> //= require google_analytics_snippet <% end %>试试这个:
Run Code Online (Sandbox Code Playgroud)<% if Rails.env.production? require_asset "google_analytics_snippet" end %>