サーチ…


前書き

アセットパイプラインは、JavaScriptとCSSアセットを連結したり、縮小したり、圧縮したりするためのフレームワークを提供します。また、これらの資産をCoffeeScript、Sass、ERBなどの他の言語やプリプロセッサで記述することもできます。これにより、アプリケーション内のアセットを他の宝石のアセットと自動的に結合することができます。たとえば、jquery-railsにはjquery.jsのコピーが含まれ、RailsにAJAX機能が有効になっています。

レイクタスク

デフォルトでは、 sprockets-railsは次のレーキタスクが含まれています。

  • assets:clean[keep] :古いコンパイル済みの資産を削除する
  • assets:clobber :コンパイルされたアセットを削除する
  • assets:environment :資産のコンパイル環境をロードする
  • assets:precompile config.assets.precompileconfig.assets.precompileconfig.assets.precompileされたすべてのアセットをコンパイルしconfig.assets.precompile

マニフェストファイルとディレクティブ

assets config/initializers/assets.rbconfig/initializers/assets.rb )には、プリコンパイルするように明示的に定義されたいくつかのファイルがあります。

# Precompile additional assets.
# application.coffee, application.scss, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )

この例では、 application.coffeeapplication.scssは「マニフェストファイル」と呼ばれています。このファイルは、他のJavaScriptまたはCSSアセットを含めるために使用する必要があります。次のコマンドを使用できます。

  • require <path> :Rubyのrequire同様のrequireディレクティブ関数。パス内のファイルに依存関係を宣言する方法を提供し、ソースファイルの前に一度だけロードされるようにします。
  • require_directory <path> :単一のディレクトリ内にすべてのファイルが必要です。これは、ネストされたディレクトリに従わないため、 path/*と似ていpath/*
  • require_tree <path> :ディレクトリ内のすべてのネストされたファイルが必要です。そのグロブに相当するのはpath/**/*です。
  • require_self :後続のrequireディレクティブの前に、現在のファイルの本文を挿入します。インデックスファイルに他の依存関係がロードされる前に定義する必要のあるグローバルスタイルを含むのが一般的なCSSファイルで便利です。
  • stub <path> :ファイルをインクルードから削除する
  • depend_on <path> :依存関係をファイルに含めることなく依存関係をdepend_on <path>できます。これはキャッシュ目的で使用されます。依存ファイルに加えられたすべての変更は、ソースファイルのキャッシュを無効にします。

application.scssファイルは次のようになります。

/*
 *= require bootstrap
 *= require_directory .
 *= require_self
 */

もう1つの例はapplication.coffeeファイルです。ここでjqueryTurbolinksを含めて:

#= require jquery2
#= require jquery_ujs
#= require turbolinks
#= require_tree .

CoffeeScriptを使用せずにJavaScriptを使用する場合、構文は次のようになります。

//= require jquery2
//= require jquery_ujs
//= require turbolinks
//= require_tree .

基本的な使用法

アセットパイプラインを使用する基本的な方法は2つあります。

  1. 開発モードでサーバーを実行すると、サーバーは自動的に事前処理し、資産をオンザフライで準備します。

  2. プロダクションモードでは、おそらくこれを使ってアセットを前処理、バージョン化、圧縮、コンパイルします。次のコマンドを実行して、これを行うことができます。

    bundle exec rake assets:precompile



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow