Что означают звездочки в рельсах
Итак, я просто понимаю, что у меня нет абсолютно никакой идеи, что Sprockets в рельсах.
при использовании либо начальной загрузки, либо материализации требуется указать sprocket
(bootstrap-sprocket или materialize-sprocket) в файле application.js
.
Все, что я ищу, рассказывает о конвейере активов и смущает меня.
Согласно рубиновым направляющим,
The asset pipeline is technically no longer a core feature of Rails 4, it has been extracted out of the framework into the sprockets-rails gem.
и когда я сделал bundle show sprockets-rails
, я получил:
/Users/Sunday/workspace/resilience/vendor/bundle/ruby/2.1.0/gems/sprockets-rails-2.3.1
который показывает, что у меня есть драгоценный камень, по крайней мере.
Но мое замешательство и мой вопрос заключается в том, что важна sprockets
, а не sprockets-rails
, которая сделала другие драгоценные камни, такие как bootstrap
и materialize
, и, возможно, некоторые другие имели sprockets
, особенно в их файлы javascript?
Спасибо.
Ответы
Ответ 1
Sprockets - это библиотека Ruby для компиляции и обслуживания веб-ресурсов. Sprockets позволяет организовывать приложения JavaScript файлов на более мелкие более управляемые куски, которые могут быть распределены по нескольким каталогам и файлам. Он обеспечивает структуру и методы включения активов в наши проекты.
Используя директивы в начале каждого файла JavaScript, Sprockets может определять, от каких файлов зависит текущий файл JavaScript. Когда дело доходит до развертывания вашего приложения, Sprockets затем использует эти директивы, чтобы превратить ваши несколько файлов JavaScript в один файл для лучшей производительности.
Ответ 2
/app/assets/javascripts/application.js
// This is a manifest file that'll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they'll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// the compiled file.
//
//= require jquery
//= require jquery_ujs
//= require_tree .
application.js
файл известен как манифест, а его управление внутри - Sprockets
. Когда запрос приходит для этого файла, Sprockets
просматривает манифест и компилирует вместе каждый файл, который упоминается в нем, и включает их содержимое перед любым кодом в этом файле.
Sprockets
будет искать loadpath
для этого файла и в этом случае загрузить его из каталога jquery-rails
engines vendor/asset/javascripts
.