12

Chciałbym jakoś uniemożliwić włączenie niektórych aktywów do potoku aktywów w środowisku programistycznym.Wykluczenie niektórych zasobów z potoku w środowisku programistycznym?

Dotychczas próbowałem następujące:

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

i

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

Wszystko, co wydaje się być osiągnięcie to, czy linia //= require google_analytics_snippet pojawia się w manifeście. Rzeczywisty kod w pliku google_analytics_snippet.js nigdy nie jest ładowany, niezależnie od środowiska, gdy używam któregoś z tych prób rozwiązania.

Czy mogę to zrobić?

Edit:
używałem plik JavaScript o nazwie olark.js w moich przykładów, kiedy pierwszy raz pisał to pytanie. To był zły wybór, ponieważ Olark ma rubygem, który może rozwiązać problem. Zmieniłem ten przykład, ponieważ szukam ogólnego rozwiązania formularza.

+0

Czy masz coś gemmed w gemfile dla olark? Czy zależy Ci tylko od pliku olark.js, który można uwzględnić w swojej aplikacji? – James

+0

Nie używam Klejnotu. Wszystko, czego używam w Olark to fragment kodu JS. W każdym razie nie chciałem, żeby pytanie dotyczyło Olarka. Szukam bardziej abstrakcyjnego rozwiązania. –

Odpowiedz

19

szukałem przez źródło koronek i uważam, że dyrektywa preprocesor zawsze działa przed dowolnym silnikiem. Dlatego nie można dodać żadnej warunkowej logiki do sekcji dyrektyw z ERB lub innym silnikiem.

UPDATE

Joshua Peek, answered na moje pytanie:

Odpowiedź brzmi: tak, ale jeśli to jest to, co staramy się robić:

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

spróbować zamiast:

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

Bardzo ważne jest, aby powiedzieć, że plik powinien się nazywać application.js.erb lub sintax jest nieprawidłowy! –

0

W zależności od środowiska wdrażania można spojrzeć na rack/olark gem.

Mogłeś wtedy prawdopodobnie spróbować czegoś takiego w swoim gemfile:

group :production do 
    gem 'rack-olark' 
end 

tylko myśl ..

+0

Dzięki, ale szukam bardziej ogólnego rozwiązania. Olark miał być tylko przykładem. Zmieniłem to pytanie. –

Powiązane problemy