我正在尝试使用Compass font-face mixin,其中包含了 * .eot?iefix
我的app / assets / fonts包含所需的所有字体类型,包括.eot。
当我尝试运行资产时:预编译任务失败,说: webfont.eot?iefix未预编译
您是否知道此问题的可能解决方案?
如果我有config.assets.compile = true,它运行时没有错误,但正如我所知,最好不要在生产中使用它。
答案 0 :(得分: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;
}
答案 1 :(得分:4)
我刚刚用一点(支持)黑客解决了这个问题。
我创建了一个新的css文件font.css.erb
,并将@import "font"
放在@font-face
声明的位置。
@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;
}
请注意资产路径的使用以及特殊文件结尾的连接。
答案 2 :(得分:1)
似乎是一个已知问题https://github.com/rails/rails/issues/3045 现在使用config.assets.compile = true。