资产管道和@ font-face on rails(rails 3.2.3)

时间:2012-05-04 01:34:53

标签: ruby-on-rails ruby-on-rails-3 font-face asset-pipeline assets

如何在rails上使用@ font-face来修饰字体:

我的字体位于:

  

/供应商/资产/样式表/字体/的定制字体列表-此处 .eot

包含@ font-face的样式表位于:

  

/vendor/assets/stylesheets/fonts.css

我现在正在使用

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

}

我想知道这是否正确,

欢迎任何建议, 谢谢

2 个答案:

答案 0 :(得分:11)

您不应该需要文件路径的fonts/部分。 app/assets/fonts目录应已包含在asset_path中,因此您应该可以使用此目录:

<%= asset_path('arimo-regular-webfont.eot') %>

我不知道为什么会发生这种情况,但我听说有人assets/fonts目录的问题不在资产管道中,所以你必须手动添加它。如果上述方法不适合您,请尝试通过将以下内容添加到config/application.rb

中来手动添加目录
config.assets.paths << "#{Rails.root}/app/assets/fonts"

答案 1 :(得分:3)

在使用asset_path帮助时,您应该将.erb附加到font.css,使其成为font.css.erb。更好的解决方案是使用来自sass-railsless-rails宝石的资产助手,例如font-url

有关它的更多信息:sass-rails features