在Rails 4.2.4中使用字体

时间:2016-09-08 15:18:42

标签: css ruby-on-rails fonts sass ruby-on-rails-4.2

我试图在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 FontsHow 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)后服务器多次。 :(

2 个答案:

答案 0 :(得分:0)

不要更改资产路径

如果您将资源投入app/assets,那么您已全部设置,如上所述[{3}}。

  

默认位置是:app / assets文件夹下的images,javascripts和stylesheets目录,但这些子目录并不特殊 - 将搜索assets / *下的任何路径。

使用asset-urlfont-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。在某个地方,字体也被重命名。我不知道为什么或如何帮助解决这个问题,但它似乎以某种方式帮助解决了这个问题。