3

Compass を使用して画像をスプライトします (多数の画像を 1 つのファイルに結合します)。images/common/ dir のスプライトを作成すると、Compass は common-sff832da50b.png という名前のファイルを作成します。Compass は、スプライトを再生成するたびに新しいサフィックスを生成します。これらのスプライト画像を app/assets/images に残すと、public/assets に common-sff832da50b.png と common-sff832da50b-4a575c6c5d24895370db5ee7e7648d3a.png の両方が表示されます。Compass がこのファイルを管理するので、Asset Pipeline にもこのファイルを「管理」させる理由がわかりません。これらのスプライトを public/assets に直接コンパイルするように Compass を構成することで、Asset Pipeline をバイパスできます。これには欠点がありますか?

また、スプライトにコンパイルされる「ソース」画像を app/assets/images に保存しないようにする必要があるのも理にかなっています。これは、Asset Pipeline がそれらも「管理」するためです。これらの「ソース」イメージは使用されないことに注意してください。このアプリは、開発中および本番環境でスプライトを使用しています。私の知る限り、Asset Pipeline がオリジナルとオリジナルの「ダイジェスト」を public/assets にコピーする理由はありません。スプライト内からのみ使用しています。これは合理的に聞こえますか?欠点はありますか?

想定: Rails 3.2.*

ありがとう!

4

1 に答える 1

2

生の画像をパイプライン外の任意のフォルダーに移動できます。か否か。プリコンパイルにかかる時間と、参照することのないパブリック フォルダーにファイルが浮かんでいることを除けば、大きな違いはありません。

画像をどこかに貼り付ける必要があり、Rails の独断的な観点からは、これが最も抵抗が少ないように思われます。

フィンガープリントに関しては、コンパスは(あなたが言うように)作成するファイルを参照するため、フィンガープリント化されたファイルも必要ありません。

ただし、プロジェクトのデプロイ方法によっては、+/public/assets+ に直接書き込むと問題が発生する可能性があります。

デフォルトの Capistrano タスクを使用する場合、assets フォルダーは +shared/assets+ からシンボリック リンクされるため、シンボリック リンクが行われた後にスプライトをコンパイルする必要があります。

于 2012-06-16T07:36:58.913 に答える