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

Rails 3.1 Pipeline - исключить файл Javascript

Я хочу исключить конкретный файл javascript (modernizr) из конвейера, потому что я хочу, чтобы он загружался отдельно.

Я хочу загрузить Modernizr в начале, а остальная часть моего javascript будет конкатенирована в конце.

Есть ли способ сделать противоположное требование в конвейере активов в 3.1? то есть. исключить?

Спасибо заранее.

Адам.

4b9b3361

Ответ 1

Я решил сохранить функциональность звездочек, изменив

//= require_tree

к

//= require_directory .

Это держит звездочки для автоматической загрузки любых файлов в один и тот же каталог, но не в любые папки.

Это позволило мне переместить Modernizr.js в папку assets/javascripts/top и вручную загрузить его вверху:

<%= javascript_include_tag "top/modernizr" %>

и переместите

<%= javascript_include_tag "application" %>

В нижней части моего файла application.html.erb(над тегом закрывающего тела)

Ответ 2

Я понимаю, что это старый вопрос, но Google отправил меня сюда на прошлой неделе, так что это не устаревший вопрос. Ответ, который я нашел в другом месте, был директива "stub" для звездочек. Так что что-то вроде

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

Это не приведет к тому, что Modernizr.js выйдет из комплекта. Он может быть включен со своим собственным тегом, по первому ответу.

Журнал изменений Sprockets говорит, что "stub" был добавлен в январе 2012 года, поэтому он не был доступен в тот момент, когда на этот вопрос был дан первый ответ, но я думаю, что это хороший ответ.

Ответ 3

Это намного проще сделать, перейдя в файл config/environment/production.rb и добавив следующую строку

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

Затем, когда вы прекомпилируете свои активы, у модернизатора будет свой собственный файл, который вы можете использовать в своей голове.

Ответ 4

Эти ответы устарели. Просто переместите active_admin.css.scss от app/assets/stylesheets до vendor/assets/stylesheets.

Сделайте то же самое с active_admin.js.coffee (перейдите от app/assets/javascripts до vendor/assets/javascripts).

Затем ваши ресурсы будут загружаться по мере необходимости, и вам не придется вносить изменения в applications.js для размещения active_admin.

Это решение описано в этой проблеме. Надеюсь, это поможет.