2012-03-13 6 views
1

1)変更されていないことが判明している画像(ビザロゴ)は、1つのサーバーに3種類のバージョンがあり、別のバージョンが4種類あります。これらの2つのサーバーは異なる環境にあります。railsアセットパイプラインのユニークなハッシュについての質問

ls -la public/a/visa-* 
-rw-r--r-- 1 rails rails 1506 2012-03-04 06:33 public/a/visa-2c267b881e96647fbf8297637daf7132.gif 
-rw-r--r-- 1 rails rails 1506 2012-01-14 02:33 public/a/visa-603d00ea229b0cb010f2cd1a0a486769.gif 
-rw-r--r-- 1 rails rails 1506 2012-03-13 18:34 public/a/visa-fe533b87916500d8ab2ce4a72f45b942.gif 

$ ls -la public/a/visa-* 
-rw-r--r-- 1 rails rails 1506 2011-12-24 19:35 public/a/visa-4506288212ff5ef40a1af89abd829294.gif 
-rw-r--r-- 1 rails rails 1506 2012-03-13 01:19 public/a/visa-4559e644c6dc9eccb35fc06cf3696bef.gif 
-rw-r--r-- 1 rails rails 1506 2011-09-18 15:11 public/a/visa-873a9dddb6815e34ddc6049cfb3ec7d8.gif 
-rw-r--r-- 1 rails rails 1506 2012-02-26 01:23 public/a/visa-9678ba047d426c775771509f364e8590.gif 

...このパターンは、私が持っているすべての資産に当てはまります。私はそのアイデアがファイル名をそのファイルの内容に基づいていると考えていました。

2)ファイル名がファイルの内容に基づいている場合、%= image_tag 'foo.png'%>は、ハッシュを含むアセット化されたパスにどのようにマップされますか?

3)ファイル名は、私が が DEPLOYプロセス中に私の資産私は展開するたびに「プリコンパイル」午前、なぜファイルの内容に基づいてされるを想定しある場合 - それは今6分コンパイルかかります私のアプリVM上の資産私の展開中。残りのデプロイには30秒かかります。 - 展開する前に資産をコンパイルし、ソース管理にチェックインし、展開するのに推奨されるパターンがないのはなぜですか?

答えて

1

1)私はSprocketsの初期バージョンにこれを行ったバグがあったと思います - どのバージョンのRails(とSprockets)を使用していますか?

2)Railsは、プリコンパイル時に生成されたmanifest.ymlファイルに基づいて、アセットをハッシュ化された名前にマップします。 SprocketsはマッピングのハッシュをRailsに渡し、それを公開/資産に保存します。 Railsが起動すると、このファイルが高速アクセスのためにメモリにロードされます。

3)ローカルでコンパイルしてコミットできます。唯一の注意点は、開発モードでこれらの静的資産を提供することを避けるために、development.rb内のアセットパス接頭辞を変更する必要があることです。

+0

アセット3(アセット・プリコンパイル・パフォーマンス)では、最近のバージョンのRails(3.2+)ではパフォーマンスが大幅に改善されたことが確認できます。これは初期のバージョンでは大きな苦労でした。これは、それが_fast_であると言っているわけではありません:-)。 http://stackoverflow.com/questions/7537474/rake-assetsprecompile-is-slow –

+1

を参照してください。[ブログ投稿](http://richardhulse.blogspot.co.nz/2012/03/rails-how-to- compile-and-commit-assets.html)を参照してください。 –

+0

私は3.2.2です。私の宝石も最新であることを確かめてください。 #1を検証するために、次回の展開時に資産を運用するつもりです。 – jsharpe