Rails 4无法在生产中找到字体

时间:2013-12-09 14:51:28

标签: css ruby-on-rails fonts font-face production

场景:我有一个Rails 4.0.0应用程序,使用capistrano进行部署,它在我的生产服务器上预编译我的资产。

问题:我正在尝试添加字体并将其与@ font-face一起使用。它在本地工作,但不在生产中。

错误消息:“无法加载资源:服务器响应状态为404(未找到)”

我的字体位于 app / assets / fonts /

我的相关文件:

应用程序/资产/样式表/ application.css.scss:

/*
 * This is a manifest file yada yada yada...
 *
 *= require bootstrap
 *= require_self
 *= require_tree .
 */

@font-face {
  font-family: 'stone_sansregular';
  src: url(font-path('stone_sans_regular-webfont.eot') + "?#iefix") format('embedded-opentype'),
    url(font-path('stone_sans_regular-webfont.woff')) format('woff'),
    url(font-path('stone_sans_regular-webfont.ttf'))  format('truetype'),
    url(font-path('stone_sans_regular-webfont.svg') + "#stone_sansregular") format('svg');
}

配置/ application.rb中:

config.assets.paths << Rails.root.join("app", "assets", "fonts")

我已经在几个SO帖子和其他来源中寻找答案,但我似乎无法做到正确。顺便说一句,我没有在Heroku上部署。我错过了什么?感谢您的帮助。

编辑:在制作中,我找到了我认为应该是的字体: my-rails-app / current / public / @ assets / fonts

1 个答案:

答案 0 :(得分:2)

一旦我意识到我的font-awesome.css文件实际上没有在生产中加载,我最近修复了一个类似的问题。我不得不做

*= require font-awesome.css

而不是

@import "font-awsome.css";

在我的application.css.scss清单中。

此外,对于添加到文件名的MD5哈希,我不确定这是否是一个问题,但我最终做了:

font-url('fontawesome-webfont.eot');

而不是

url(font-path('fontawesome-webfont.eot')

因此,如果这是一个问题,我相当肯定使用font-url会正确处理它。