2011-10-30 10 views
1

私はAsset Pipelineに入っています。私はSASS/SCSSを使用していますが、Assetヘルパーを使用する理由を理解できません。例えばRails 3.1資産パイプライン - SCSSファイルで資産ヘルパーを使用するのはなぜですか?

私は資産ヘルパーを使用せずに、いくつかのCSS/SCSS持っている場合、:

background-image: url('rails.png'); 

を私.SCSSファイルと画像の両方が中や資産のディレクトリからアクセスできますので、これは正常に動作します。

これを行うためのポイントは、私はそれがURLに「/ /資産」を追加しますが、標準のCSSの方法がうまくいくならば、なぜ私が資産ヘルパーを使用する必要があります理解

background-image: asset-url("rails.png", image); 

を?:何ですか?

私は何かが不足していると思う。プロダクションに展開することとは関係がありますか?

答えて

7

ヘルパーを使用すると、本番で指紋で印刷されたURLにアクセスできます。 Asset Pipeline guide

本番環境では、Railsは上記の指紋方式を使用します。デフォルトでは、アセットはプリコンパイルされており、Webサーバーによって静的アセットとして提供されます。

プリコンパイル段階では、コンパイルされたファイルの内容からMD5が生成され、ディスクに書き込まれるときにファイル名に挿入されます。これらのフィンガープリントされた名前は、マニフェスト名の代わりにRailsヘルパーによって使用されます。

ので生産で、パスはMD5が追加持っていて、このようなものを持っている:チェックサム付き

/assets/pancakes-af27b6a414e6da00003503148be9b409.png 

を所定の位置に、Railsは永遠にこれらのファイルをキャッシュするようにブラウザを伝えることができます。次に、アセットの1つを変更する新しいリリースを実行すると、チェックサムが変更され、パス全体が変更されます。新しいパスは、ブラウザがそれをまったく新しいファイルだと考えさせるので、再度それをフェッチします。チェックサムがなければ、古いファイルをブラウザのキャッシュに簡単に詰め込むことができます。そのようなことはまさに楽しい楽しい時間ではありません。

+0

ああ、私はそのようなものでなければならないことを知っていました。応答していただきありがとうございます。 – user657823

関連する問題