2016-06-02 6 views
0

ローカルと英雄の両方私のフォントに問題があります。Railsの資産が自分のフォントに問題がある

Railsの4.2.5.1

私のフォントは、アプリ/フォントフォルダにあります。

/app/assets/fonts/fontawesome-webfont.eot 
/app/assets/fonts/fontawesome-webfont.svg 
/app/assets/fonts/fontawesome-webfont.ttf 
/app/assets/fonts/fontawesome-webfont.woff 
/app/assets/fonts/fontawesome-webfont.otf 

エラーメッセージ:

Started GET "/assets/fonts/fontawesome-webfont.ttf?v=4.2.0" for ::1 at 2016-06-01 22:12:24 -0400 

ActionController::RoutingError (No route matches [GET] "/assets/fonts/fontawesome-webfont.ttf"): 
    actionpack (4.2.5.1) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call' 
    web-console (2.3.0) lib/web_console/middleware.rb:28:in `block in call' 
    web-console (2.3.0) lib/web_console/middleware.rb:18:in `catch' 
    web-console (2.3.0) lib/web_console/middleware.rb:18:in `call' 
    actionpack (4.2.5.1) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call' 
    railties (4.2.5.1) lib/rails/rack/logger.rb:38:in `call_app' 
    railties (4.2.5.1) lib/rails/rack/logger.rb:20:in `block in call' 
    activesupport (4.2.5.1) lib/active_support/tagged_logging.rb:68:in `block in tagged' 

設定/初期化子/ assets.rbがあります

Rails.application.config.assets.version = '2.0' 

問題はここにある、非常に混乱している?

+0

に動作しますか?いつこのエラーが出ますか? – Anand

+0

私のフォントはfont-awesome.min.cssファイルで参照されています。私はすべての参照を/ assets/fonts/...に変更しました。 – Blankman

答えて

3

assets/javascriptsassets/stylesheetsassets/fontsなどにアセットを格納していますが、これらのディレクトリは直接URLにマップされません。代わりにすべてはちょうど/assetsから提供されています。だからあなたのブラウザのロケーションバーにhttp://localhost:3000/assets/fontawesome-webfont.ttfと私はあなたがフォントを手に入れたと思う。

だから、フォントを参照しているものを見つけてそこのURLを(おそらくCSSファイルに)修正する必要があります。 BUT本番環境では、Railsはこれらのアセットの名前を変更してキャッシュ可能にするため、プロダクションの正しいURLはhttp://example.com/assets/fontawesome-webfont-asdfasasdfadsfadfsasf23kjksdjkasdfadsf.ttfのようになります。 asset_path helperを使用すると、常に正しいURLを取得できることを確認できます。 asset_urlimage_pathなどもあります。font_pathもあります!

+0

私は自分のスタイルシートでfont_pathを使うべきです。 scssはfont_pathを正しく使用していますか? – Blankman

+0

この作品のようなものはありますか? '' 'font_url( 'fontawesome-webfont.eot?v = 4.2.0')' ''? – Blankman

+0

私はクエリパラメータの部分を省略し、 'font_url( 'fontawesome-webfont.eot')'と言うだけです。これはscssファイルですか?その場合、 'font-url'(ハイフンはアンダースコアではありません)でなければなりません。あるいは、erbファイルの場合、ヘルパーをerbタグで囲む必要があります: '<%= font_url( '...')%>'。 –

0

fontsフォルダは、アセットの他のRailsアセットパイプラインフォルダと一緒に読み込まれないため、最初に追加する必要があります。これはfontフォルダをアプリケーションにロードできるように、残りのと一緒にスタートします。この

class Application < Rails::Application 
    config.assets.paths << Rails.root.join("app", "assets", "fonts") 
end 

などのアプリケーションクラス内

config.assets.paths << Rails.root.join("app", "assets", "fonts")

:あなたのconfig/application.rbファイルで

は、この行を追加します。フォルダ

あなたのCSSファイルで、すべてを変更してくださいsrc: url("/assets/fonts/font_name.format");src: url("/assets/font_name.format");

これはすべきことです。

0

私は私のプロジェクトからフォント素晴らしいCSSを削除し、ちょうどdarn gemを追加し、それがどのようにあなたのフォントを含むされている:)

関連する問題