2017-11-21 6 views
1

私はFont-Awesomeを使用するレールアプリを持っています。アイコンは、開発環境では表示されていますが、本番環境では表示されません。Railsフォント - 驚くばかり表示していない - 間違ったファイル名を使用

私はnginxの/旅客のログをチェックしており、これらは以下を示しています。

[21/Nov/2017:17:13:25 +0000] "GET /assets/back/font-awesome/fontawesome-webfont.ttf HTTP/1.1" 404 1564 "https://example.com/assets/application_back-b78b545bb6d96e3f98206780079663e7d84d11a41143a57b3ab7b110feac9944.css

私はpublic/assets/back/font-awesome/ディレクトリにチェックして、すべてのフォントファイルは、それが見つけることができない理由であるfontawesome-webfont-aa58f33f239a0fb02f5c7a6c45c043d7a9ac9a093335806694ecd6d4edc0d6a8.ttfのように表示されていますファイルを作成しますが、なぜこれを行うのかわかりません

+0

これらは最適化された/縮小されたバージョンです。実運用資産を生成するには 'rake assets:precompile RAILS_ENV = production'を実行する必要があります。 – DivXZero

+0

私はそれを実行しましたが、それはまだ同じです – Luke

答えて

1

Railsのアセットパイプラインはファイル名の末尾に文字列を追加し、アセットが変更されたときにキャッシュから期限切れになる可能性があります。このため、適切なファイル名を参照するためには、URLヘルパーでビルドされたRailsを使用する必要があります。あなたはフォント素晴らしいフォントを参照するすべてのERBで

は、資産・パスヘルパーを使用してみてください:

あなたは資産URLヘルパーを使用することができ、あなたのSASSファイルで
@font-face { 
    font-family: 'fontawesome-webfont'; 
    src: url('<%= asset_path("fontawesome-webfont.eot") %>'); 
    src: url('<%= asset_path("fontawesome-webfont.eot#iefix") %>') 
    format('embedded-opentype'), 
    url('<%= asset_path("fontawesome-webfont.woff") %>') format('woff'), 
    url('<%= asset_path("fontawesome-webfont.ttf") %>') format('truetype'); 
} 

@font-face { 
    font-family: 'fontawesome-webfont'; 
    src: asset-url("fontawesome-webfont.eot"); 
    src: asset-url("fontawesome-webfont.eot#iefix") 
    format('embedded-opentype'), 
    asset-url("fontawesome-webfont.woff") format('woff'), 
    asset-url("fontawesome-webfont.ttf") format('truetype'); 
} 

場合レイアウトの中からフォントの素晴らしいCSSファイルを参照しようとしているだけですが、スタイルシートヘルパーを使用してください:

stylesheet_link_tag "FILENAME-OF-YOUR-FA-STYLESHEET.css" 

はここでRailsのアセットパイプライン上のいくつかのより多くの読書で、利用可能なすべての異なるヘルパー:

0

Rails Asset Pipline Docs私は今、それが正しくファイルを呼び出して、資産をリファクタリングSCSSにバックエンドCSSに変換し、font-url(...)からurl(...)の呼び出しを変更することでこれを解決しました。

関連する問題