5

にiefixコール私は
* .eot?iefix資産パイプライン、コンパスフォント面とEOT?フォント

マイアプリ/資産の算入が含まれているコンパスフォントフェイスミックスインを使用しようとしています/ fontsには、.eotを含む必要なすべてのフォントタイプが含まれています。

私は資産を実行しよう:あなたはこの問題の可能な解決策を知っています webfont.eot iefix

をプリコンパイルされていません:?タスクは何かなどを言って失敗したプリコンパイル?

config.assets.compile = trueの場合でもエラーは発生しませんが、本番環境では使用しない方が良いと理解しています。

答えて

4

ちょっと(サポートされている)ハックでこの問題を解決しました。

@font-face宣言の代わりにfont.css.erbという新しいCSSファイルを作成し、@import "font"という場所に配置しました。

@font-face { 
    font-family: 'SketchBlockBold'; 
    src: font_url('font/sketch_block-webfont.eot'); 
    src: url('<%= asset_path('font/sketch_block-webfont.eot')+"?#iefix" %>') format('embedded-opentype'), 
     font_url('font/sketch_block-webfont.woff') format('woff'), 
     font_url('font/sketch_block-webfont.ttf') format('truetype'), 
     url('<%= asset_path('font/sketch_block-webfont.svg')+"#SketchBlockBold" %>') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 

アセットパスの使用と特殊ファイルのエンディングの連結に注意してください。

+0

は、なぜあなたは 'フォントurl'と' url'宣言の両方を使用しましたか?違いは何ですか? – pruett

+0

これは、url()がアセットパイプライン関数ではありませんが、font_url()はそのためです。この場合、私は基本的にfont_url()マジックをerbのものに置き換えています –

+0

提案に感謝します!コードはローカルで完璧にうまく動作しますが、 'rake assets:precompile'は同じエラーになります:' fontname.eotはプリコンパイルされていません ' 何が問題になるかもしれません、どう思いますか? – lyuba

10

あなたはあまりにも純粋SCSSでそれを行うことができます。

@font-face { 
    font-family: 'DroidSans'; 
    src: url(font-path('DroidSans-webfont.eot')); 
    src: url(font-path('DroidSans-webfont.eot') + '?#iefix') format('embedded-opentype'), 
     url(font-path('DroidSans-webfont.woff')) format('woff'), 
     url(font-path('DroidSans-webfont.ttf')) format('truetype'), 
     url(font-path('DroidSans-webfont.svg') + '#DroidSansRegular') format('svg'); 
    font-weight: normal; 
    font-style: normal; 
} 
+0

の代わりに 'font-url()'を使用することができます。 – nXqd

+1

私はあなたが今できると信じています。当時、SassヘルパーとRailsヘルパーの間には矛盾がありました。 –

関連する問題