我试图在Rails 4.2.4应用程序中使用特定字体,但没有任何工作 - 它固执地拒绝出现。我已经花了几个小时,而且我不知道自己做错了什么。
字体位于app/assets/fonts/comic_andy.tff
。
SCSS(位于app/assets/stylesheets/sass/application.css.scss
):
@font-face {
font-family: "comic_andy";
src: font-url('comic_andy.ttf');
src: font-url('comic_andy.ttf'), format('truetype');
}
在浏览器中,SCSS编译为此CSS:
@font-face {
font-family: "comic_andy";
src: url(/fonts/comic_andy.ttf);
src: url(/fonts/comic_andy.ttf), format("truetype");
}
它不应该编译为assets / comic_andy.ttf吗?我是Rails的新手,虽然我得到了资产管道 的内容,但仍然证明我能够非常有效地使用它。
我已阅读Rails 4 - Custom Fonts,How to use fonts in Rails 4以及与字体/ Rails /资产管道相关的其他几个Stack Overflow问题,并尝试了许多建议,包括(但不限于!)将config.assets.paths << Rails.root.join('app', 'assets', 'fonts')
添加到application.rb
(nope),尝试asset-url
(nope),font-url
(nope)和普通url
(nope),然后重新启动rake assets:clobber
(nope)后服务器多次。 :(
答案 0 :(得分:0)
如果您将资源投入app/assets
,那么您已全部设置,如上所述[{3}}。
默认位置是:app / assets文件夹下的images,javascripts和stylesheets目录,但这些子目录并不特殊 - 将搜索assets / *下的任何路径。
asset-url
或font-url
如果你在Ruby on Rails指南上引用here,你会发现这里适当的方法是使用asset-url
(或font-url
),如下所示:
@font-face {
font-family: 'comic_andy';
src: asset-url('comic_andy.ttf') format('truetype');
}
在您的开发环境中,它应编译为:
@font-face {
font-family: 'comic_andy';
src: url(/assets/comic_andy.ttf) format("truetype");
}
注意:.ttf文件的正确格式为format("truetype")
。
如果事情仍然不起作用,可能是您的ttf文件存在问题(我的项目使用的是woff
格式),您应该使用The Asset Pipeline page之类的服务来修复它。
答案 1 :(得分:0)
最后解决了这个问题。 F I N A L L Y.
SASS:
@font-face {
font-family: "comic_andy";
src: font-url('comicandy.ttf');
src: font-url('comicandy.ttf'), format("truetype"); }
Application.rb:
config.assets.paths << Rails.root.join("app", "assets", "fonts")
config.assets.enabled = true
Asshat Pipeline没有正确编译SASS,因为我遗漏了config.assets.enabled = true
。在某个地方,字体也被重命名。我不知道为什么或如何帮助解决这个问题,但它似乎以某种方式帮助解决了这个问题。