【问题标题】:Rails: @font-face work on Heroku, but not on localhostRails:@font-face 可以在 Heroku 上工作,但不能在 localhost 上工作
【发布时间】:2012-12-25 13:04:47
【问题描述】:
在 CSS 中:
@font-face {
font-family: 'some_name';
src: url('font_name.eot');
}
在application.rb:
config.assets.paths << "#{Rails.root}/app/assets/fonts"
在 Heroku 上这个设置运行良好,但在 localhost 上却不行。我是否缺少在 localhost 上正确显示非标准字体的内容?
我在 Mountain Lion 上奔跑。
谢谢
【问题讨论】:
标签:
ruby-on-rails
ruby
fonts
osx-lion
font-face
【解决方案1】:
字体的scr 路径规范是相对的。
在生产环境中,所有资产都被编译,不同类型的资产被放在一个文件夹中,可通过/assets/asset-name访问。这意味着字体和 css 文件都将在同一个文件夹中,并且相对路径可以。然而,在开发环境中,资产没有被编译,也没有组合在一起,这意味着它们可以通过/assets/ASSET-TYPE/asset-name 访问。所以字体不会和样式表在同一个文件夹中,相对路径也无助于找到实际的字体文件。
Rails 有一个 asset-url CSS 助手,它在两种环境中都可以使用,它会在编译期间被替换为 url(path-to-asset)。
@font-face {
font-family: 'The Font';
src: asset-url('the_font.eof', font);
}
【解决方案2】:
这个解决方案对我有用:
@font-face {
font-family: 'some_name';
src: url('/assets/font_name.eot');
}