Подтвердить что ты не робот

Исключить определенные ресурсы из конвейера в среде разработки?

Я хотел бы как-то помешать некоторым активам быть включенными в конвейер активов в среде разработки.

До сих пор я пробовал следующее:

# app/assets/javascripts/application.js.erb
<% if Rails.env.production? %>
//= require google_analytics_snippet
<% end %>

и

# app/assets/javascripts/application.js.erb    
<% if ENV['RACK_ENV'] == 'production' %>
//= require google_analytics_snippet
<% end %>

Все, что я, кажется, добиваюсь, - это то, появляется ли в манифесте строка //= require google_analytics_snippet. Фактический код в файле google_analytics_snippet.js никогда не загружается, независимо от среды, когда я использую любое из этих попыток.

Есть ли способ сделать это?

Edit:
Я использовал javascript файл с именем olark.js в своих примерах, когда я впервые разместил этот вопрос. Это был плохой пример, поскольку Olark имеет рубигем, который может решить проблему. Я изменил пример, потому что я ищу решение общей формы.

4b9b3361

Ответ 1

Я просмотрел источник звездочек и нашел, что директивный препроцессор всегда запускается перед любым движком. Таким образом, невозможно добавить какую-либо условную логику в раздел директив с ERB или другим движком.

UPDATE

Joshua Peek, ответил на мой вопрос:

Ответ - да, но если это то, что вы пытаетесь сделать:

<% if Rails.env.production? %> 
//= require google_analytics_snippet
<% end %>

попробуйте это вместо:

<% if Rails.env.production?
require_asset "google_analytics_snippet"
end %>

Ответ 2

В зависимости от среды развертывания вы можете посмотреть стойку/оларк-камень.

Тогда вы могли бы попробовать что-то подобное в своем gemfile:

group :production do
  gem 'rack-olark'
end

Просто мысль..