Rails 3.1でアセットパイプラインに別のフォルダを追加する方法を知っている人はいますか?
app/assets/fonts
と同じ方法でapp/assets/images
を提供したいと思います。
更新:5-7-201
Application.rbファイルに、この質問を見つけた将来の人々のために明確にアセットパスを明示的に追加するための明確化を追加するだけです。
config.assets.paths << "#{Rails.root}/app/assets/fonts"
ただし、上記のパスはapp/assets
の下にあるため、明示的に追加する必要はありません。SprocketsがピックアップできるようにRailsアプリを再起動する必要があります。
app/assets
、lib/assets
、またはvendor/assets
の外部にあるパスを明示的に追加する必要がありますが、Sprocketsはアプリケーションのロード時に存在したフォルダー内の新しいファイルを選択することを覚えておいてください。私の経験では、再起動せずにアセットパスで新しいフォルダーを選択することはありません。
アンドリュー、_app/assets/fonts
_は、実際にimages
とともに既にアセットのロードパスにあります。したがって、同じ方法でアセットを指すことができます:<%= asset_path('/Ubuntu/Ubuntu-R-webfont.eot') %>
[1]または画像の参照方法。
これにも頭を巻くのに時間がかかりました。 _app/assets/fonts
_と_app/assets/images
_に同じ名前のファイルがある場合、何が起こるかまだわかりません。
[1] _app/assets/fonts/Ubuntu/Ubuntu-R-webfont.eot
_にフォントがあると仮定します
アンドリュー、ジェイソンは同意しました。 FWIWこれをconfig/application.rbの横に置きます
# Enable the asset pipeline
config.assets.enabled = true
config.assets.paths << "#{Rails.root}/app/assets/fonts"
app/assets/images
とapp/assets/fonts
を作成することにより、それらはアセットパスに自動的に追加されます。
それらを作成した後、Railsコンソールを開いて、以下を確認します。
y Rails.application.config.assets.paths
(y
はyaml
メソッドのショートカットです)
パスを追加せずに機能しますが、アセットに有効なファイル名を使用していることに注意してください。
url("#{asset_path 'fontawesome-webfont.eot'}?#iefix") format('embedded-opentype'),
...
url("#{asset_path 'fontawesome-webfont.svg'}#FontAwesome") format('svg');
たとえば、この場合、?#iefix
フォントファイル名の外側
Rails 3.1.0.rc4(そしておそらくもっと高い))の設定に新しいパスを追加せずに動作することを確認できます。サーバーをバウンスしました。
assets/fonts
フォルダーを作成し、その上にフォントを追加し、cssファイルで次のようにテーマを使用します
@font-face {
font-family: Sawasdee;
src: url(Sawasdee.ttf);
}