それで、SprocketsがRailsに何があるのか、まったくわからないことに気づきました。
ブートストラップまたはマテリアライズのいずれかを使用する場合、application.js
ファイルにsprocket
(ブートストラップ-sprocketまたはmaterialize-sprocket)を含めることが要求されます。
私が検索するすべてのものは、アセットパイプラインについて話し、さらに混乱します。
Rubyガイドによると、
アセットパイプラインは技術的にRails 4のコア機能ではなくなりました。フレームワークから抽出され、sprockets-Railsジェムに組み込まれました。
私がbundle show sprockets-Rails
をしたとき、私は得ました:
/Users/Sunday/workspace/resilience/vendor/bundle/Ruby/2.1.0/gems/sprockets-Rails-2.3.1
少なくとも私は宝石を持っていることを示しています。
しかし、私の混乱と私の質問は、sprockets
とbootstrap
のような他の宝石を作成したsprockets-Rails
とは対照的に、materialize
の重要性は何であるか、そしておそらく他の一部の人は、特にJavaScriptファイルでsprockets
を使用することですか?
ありがとう。
Sprocketsは、Ruby Webアセットをコンパイルおよび提供するためのライブラリです。Sprocketsを使用すると、アプリケーションのJavaScriptファイルを、より多くの管理しやすいチャンクに整理して、多数のディレクトリやファイルに分散させることができます。構造とプロジェクトにアセットを含める方法に関するプラクティス。
Sprocketsは、各JavaScriptファイルの先頭にあるディレクティブを使用して、JavaScriptファイルが依存するファイルを判別できます。アプリケーションのデプロイに関しては、Sprocketsはこれらのディレクティブを使用して複数のJavaScriptファイルを単一のファイルに変換し、パフォーマンスを向上させます。
/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's 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
はマニフェストを調べ、compilesで言及されているすべてのファイルをまとめて、このファイルのコードの前にコンテンツを含めます。 Sprockets
はloadpath
でこのファイルを検索し、この場合はjquery-Rails
エンジンのvendor/asset/javascripts
ディレクトリからロードします。