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

Maj*_*ren 6 css fonts production ruby-on-rails font-face

场景:我有一个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');
}
Run Code Online (Sandbox Code Playgroud)

配置/ application.rb中:

config.assets.paths << Rails.root.join("app", "assets", "fonts")
Run Code Online (Sandbox Code Playgroud)

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

编辑: 在生产中,我发现我认为它们应该是的字体:my-rails-app/current/public/@ assets/fonts

Ton*_*ate 2

font-awesome.css当我意识到我的文件实际上并未在生产中加载时,我最近刚刚解决了类似的问题。我必须做

*= require font-awesome.css
Run Code Online (Sandbox Code Playgroud)

代替

@import "font-awsome.css";
Run Code Online (Sandbox Code Playgroud)

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

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

font-url('fontawesome-webfont.eot');
Run Code Online (Sandbox Code Playgroud)

而不是

url(font-path('fontawesome-webfont.eot')
Run Code Online (Sandbox Code Playgroud)

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