【发布时间】:2013-08-20 02:09:33
【问题描述】:
我有一个 Rails 4 应用程序,我正在尝试使用自定义字体。
我已经关注了很多关于这方面的教程,但不知何故它不适用于我的应用程序。
我正在使用application.css.less 并声明如下:
@font-face {
font-family: 'HDVPeace';
src: font-url('HDV_Peace.eot');
src: font-url('HDV_Peace.eot?iefix') format('eot'),
font-url('HDV_Peace.woff') format('woff'),
font-url('HDV_Peace.ttf') format('truetype'),
font-url('HDV_Peace.svg#webfont') format('svg');
}
注意:我也尝试过使用 url() 而不是 font-url() 。前者在控制台上生成 404 错误,而后者似乎根本没有做任何事情。在资源下的chrome dev tools中,字体文件没有出现在 assets 文件夹下,或者任何地方
在我的config/application.rb 我有:
config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
我的config/environments/development.rb 和config/environments/production.rb 都有:
config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
config.assets.precompile += %w( .svg .eot .woff .ttf)
我的字体文件位于app/assets/fonts 并且不包含在该文件夹下...
我错过了什么?
更新:
文件夹结构
app
└── assets
└── fonts
├── HDV_Peace.eot
├── HDV_Peace.svg
├── HDV_Peace.ttf
└── HDV_Peace.woff
【问题讨论】:
-
只是想注意,您不能使用“字体”属性来使其工作。您必须在 application.css.less 文件中指定:
font-family: 'HDVPeace';。浪费了 20 分钟试图找出问题所在,所以希望这可以节省一些人的时间和精力:) -
这里是使用 Rails 4 和 Bourbon 设置字体资产路径的绝佳方法:github.com/thoughtbot/bourbon/issues/239#issuecomment-26167073(无需编辑 application.rb、production.rb 或 staging.rb 中的任何内容.)
-
如果你想手动处理字体,这是我为我的 Rails 应用程序构建的解决方案:stackoverflow.com/a/37650261/3802981
-
我在stackoverflow.com/a/40898227/1197775写了一个通用的方法来诊断和解决这个问题。
标签: fonts asset-pipeline ruby-on-rails-4