场景:我有一个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
答案 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
会正确处理它。