Rails 4 Asset Pipeline с папками Lib и Vendor

Я читал документацию по Rails 4 и Asset Pipeline, когда меня сбила с толку эта строка:

Если вы обновляетесь с Rails 3, имейте в виду, что активы в lib/assets или vendor/assets доступны для включения через манифесты приложения, но больше не являются частью массива прекомпиляции.

http://edgeguides.rubyonrails.org/asset_pipeline.html#asset-organization

В чем разница между доступностью для включения через манифест приложения и частью массива прекомпиляции? Означает ли это, что если бы у меня был файл JavaScript lib/vendor/cool_plugin.js, я бы получил ошибку 404, когда перешел в производство, даже если бы у меня был //require cool_plugin в application.js?


person Tyler DeWitt    schedule 13.05.2014    source источник


Ответы (1)


Из http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html:

В Rails 4.0 предварительная компиляция ресурсов больше не копирует автоматически ресурсы, отличные от JS/CSS, из vendor/assets и lib/assets. Разработчики приложений и движков Rails должны поместить эти активы в app/assets или настроить config.assets.precompile.

поэтому я считаю, что вам нужно явно ссылаться на ресурсы вашего поставщика, чтобы они могли быть выбраны во время предварительной компиляции на производстве:

# production.rb
config.assets.precompile += %w( cool_plugin.js )
person tirdadc    schedule 13.05.2014
comment
Я интерпретировал не-JS/CSS как изображения. Я бы прочитал цитату, которую вы привели, означающую, что cool_plugin.js будет обрабатываться автоматически, потому что это файл JS. Я неправильно это понимаю? - person Tyler DeWitt; 14.05.2014
comment
Я только что проверил это с тестовым файлом, помещенным в /lib/assets/stylesheets/test.css.scss, и мне пришлось явно добавить его в config.assets.precompile (как test.css), чтобы он работал на производстве. require test в application.css не хватило. - person tirdadc; 19.05.2014
comment
Если вы оказались здесь, потому что у вас есть изображения в поставщиках/активах, которые не предварительно компилируются, см. этот поток: stackoverflow.com/questions/14194752/ - person LikeMaBell; 03.02.2016