Rails 3.0 app で Rails 3.1 に導入されたアセット パイプラインの基本を複製しようとしています。
これまでのところ、 https ://gist.github.com/1112393 のようなものがあります。
それはうまくいきます:
- app/assets/、lib/assets、vendor/assets にアセットがあります...
- それらはすべて /assets で提供されます
- スプロケット2のオファーなどすべてを使用できます...
問題は、Rails アプリに静的アセットを提供させたくないということです。サーバーがそれを行う必要があります。私が正しく理解していれば、Rails 3.1 でアセットをプリコンパイルできるのはそのためです。そこで、まさにそれを行う rake タスクを作成しました (Sprockets::Environment の precompile メソッドを使用)。すべてのアセットが /public/assets/ にあります。
たとえば、私は
- アプリケーション-02f8c96b342b4569513d0edf39ef55eb.css
- アプリケーション-505e8f472350fb1e0d15f6ad2f5e0389.js
- gallery-icons-0e922050a85718fef3cd570df4eb5845.png
しかし、Rails 3.1 では、style.css.scss.erb でそのようなことができます。
background: url(<%= asset_path("gallery-icons.png") %>)
そして、あなたは得るでしょう
background: url(/assets/gallery-icons-0e922050a85718fef3cd570df4eb5845.png)
プリコンパイル済みファイル内。
私が間違っていなければ、ハッシュを追加するためにRails 3.1で上書きされるstylesheet_link_tag、javascript_link_tagについても同じです。
これどうやってするの?
ありとあらゆるアイデアをください!ありがとう。