78

Rails 3.1 のアセット パイプラインに別のフォルダーを追加する方法を知っている人はいますか?

app/assets/fonts提供されるのと同じ方法で提供したいと思いapp/assets/imagesます。


更新: 2013 年 5 月 7 日

application.rb ファイルに明示的にアセット パスを追加するために、この質問を見つけた将来の人のためにいくつかの説明を追加します。

config.assets.paths << "#{Rails.root}/app/assets/fonts"

ただし、上記のパスは下にあるため、app/assets明示的に追加する必要はありません。Rails アプリを再起動するだけで、Sprockets が取得できるようになります。

app/assets、、lib/assetsまたはの外側にあるパスを明示的に追加する必要がありvendor/assetsます。Sprockets は、アプリケーションが読み込まれたときに存在していたフォルダー内の新しいファイルを取得しますが、私の経験では、アセット パス内の新しいフォルダーを取得しないことを覚えておいてください。再起動。

4

6 に答える 6

74

Andrewapp/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

于 2011-06-28T20:26:04.600 に答える
43

アンドリュー、ジェイソンは同意した。FWIW私はこれを私のconfig/application.rbの隣に入れました

  # Enable the asset pipeline
config.assets.enabled = true
config.assets.paths << "#{Rails.root}/app/assets/fonts"
于 2011-07-22T19:59:09.600 に答える
8

作成するapp/assets/imagesapp/assets/fonts、アセット パスに自動的に追加されます。

それらを作成した後、Rails コンソールを開き、以下で確認します。

y Rails.application.config.assets.paths 

(yyamlメソッドのショートカットです)

于 2013-11-03T09:31:15.717 に答える
3

パスを追加しなくても機能しますが、アセットに有効なファイル名を使用していることに注意してください。

url("#{asset_path 'fontawesome-webfont.eot'}?#iefix") format('embedded-opentype'),
...
url("#{asset_path 'fontawesome-webfont.svg'}#FontAwesome") format('svg');

たとえば、この場合、?#iefixフォントファイル名の外側を残します

于 2012-10-11T21:05:03.387 に答える
2

Rails 3.1.0.rc4 (およびおそらくそれ以上) の構成に新しいパスを追加しなくても動作することを確認できます。サーバーをバウンスしましたが、あなたも同じことをするかもしれません。

于 2011-08-12T00:32:20.873 に答える
1

フォルダーを作成assets/fontsしてフォントを追加し、次のように css ファイルでテーマを使用します。

@font-face {
  font-family: Sawasdee;
  src: url(Sawasdee.ttf);
}
于 2013-05-04T17:25:32.837 に答える