Rails 3.1 Pipeline-Exclude Javascript File

Chcę wykluczyć konkretny plik javascript (modernizr) z potoku, ponieważ chcę, aby ładował się oddzielnie.

Chcę załadować Modernizr na początku i resztę mojego javascript na końcu.

Czy jest sposób, aby zrobić przeciwieństwo wymogu w potoku aktywów w 3.1? ie. / align = "left" /

Z góry dzięki.

Adam.

Author: New Alexandria, 2011-08-15

4 answers

Postanowiłem zachować funkcjonalność kół zębatych zmieniając

//= require_tree

Do

//= require_directory .

Dzięki temu sprockets automatycznie ładuje wszystkie pliki w tym samym katalogu, ale nie w żadnych folderach dalej.

To pozwoliło mi przenieść Modernizr.js do folderu assets / javascripts / top i ręcznie załaduj go na górze za pomocą:

<%= javascript_include_tag "top/modernizr" %>

I przenieść

<%= javascript_include_tag "application" %>
Do końca mojej aplikacji.html.plik erb (nad zamykającym znacznikiem body)
 56
Author: Adam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-23 20:22:50

Zdaję sobie sprawę, że to stare pytanie, ale Google wysłał mnie tutaj w zeszłym tygodniu, więc nie jest to przestarzałe pytanie. Odpowiedź, którą znalazłem gdzie indziej, to dyrektywa "stub" dla kół zębatych . Więc coś jak

//= require-tree .
//= stub Modernizr

To utrzymuje Modernizr.js z połączonych aktywów. Może być dołączony z własnym tagiem, à la oryginalna odpowiedź.

The Sprockets changelog mówi "stub" został dodany w styczniu 2012, więc nie byłoby dostępne w momencie, gdy to pytanie zostało po raz pierwszy odpowiedział, ale myślę, że teraz to dobra odpowiedź.

 21
Author: mcdave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-24 02:00:55

Jest to o wiele łatwiejsze, przechodząc do konfiguracji / środowisk / produkcji.plik rb i dodanie następującej linii

config.assets.precompile += %w( modernizr.js )

Wtedy, gdy prekompilujesz swój assets modernizer będzie miał swój własny osobny plik, który możesz użyć w swojej głowie.

 14
Author: kennethlmartin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-16 05:47:08

Te odpowiedzi są nieaktualne. Wystarczy przenieść active_admin.css.scss z app/assets/stylesheets na vendor/assets/stylesheets.

Zrób to samo z active_admin.js.coffee (Przesuń z app/assets/javascripts do vendor/assets/javascripts).

Twoje zasoby zostaną załadowane w razie potrzeby i nie będziesz musiał wprowadzać modyfikacji w applications.js, aby pomieścić active_admin.

To rozwiązanie jest opisane w w tym numerze. Mam nadzieję, że to pomoże.

 3
Author: Yuval Karmi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-17 21:37:45