首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Rails 4添加自定义字体的官方方法?

向Rails 4添加自定义字体的官方方法?
EN

Stack Overflow用户
提问于 2014-01-21 06:00:26
回答 5查看 28.6K关注 0票数 32

我正在研究如何向我的Rails应用程序中添加自定义字体,例如通过在assets文件夹中添加一个fonts文件夹--而且我找不到一种“官方”Rails方法来解决这个问题。

是的,这里有很多关于这件事的问题/答案,似乎都有他们自己的技巧。但是,这样一种常见的做法不应该被Rails著名的“约定而不是配置”所困扰吗?

或者如果我错过了它-关于如何在Rails应用程序中组织字体的文档引用在哪里?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-01-21 08:03:50

是的,给出的链接会很好地解释它,但是如果你需要另一个详细的解释,就在这里。

  • 首先,要在应用程序中使用自定义字体,您需要下载字体文件,您可以尝试https://www.1001freefonts.com/并查找字体。 很少有最流行的字体文件格式主要是.otf(开放类型格式)、.ttf(真类型格式)、.woff()
  • 您可以将下载的字体移到app/assets/ fonts /下面的app文件夹中。
  • 下载完文件后,您需要“声明”您将在css中使用的字体,如下所示 @字体-face{字体-系列:"Kaushan脚本规则“;src: url(/assets/KaushanScript-Regular.otf)格式(”truetype“);
  • 最后,您可以像这样在任何地方声明字体系列。 #e-注册{字体-家族:"Kaushan脚本规则“;}

希望这能有所帮助。

票数 67
EN

Stack Overflow用户

发布于 2016-06-08 08:23:45

就这么做了..。

  1. 下载并保存字体文件(eot,woff,woff2.)在资产/字体/目录中

代码语言:javascript
复制
1. In your **config/application.rb** add this line  config.assets.paths << Rails.root.join("app", "assets", "fonts") 

它所做的就是预编译字体文件夹,就像默认情况下对图像、样式表等所做的一样。

  1. 并确保该行设置为 true config.assets.enabled =true
  2. 在sass/scss中,甚至与<script>标记内联。 @字体-face{字体-家族:'Bariol正则‘;src: font-url('Bariol_Regular_Webfont/bariol_regular-webfont.eot');src: font-url('Bariol_Regular_Webfont/bariol_regular-webfont.eot?iefix')格式(‘eot’),font-url('Bariol_Regular_Webfont/bariol_regular-webfont.woff')格式(‘woff’),font-url('Bariol_Regular_Webfont/bariol_regular-webfont.ttf')格式(‘truetype’),font-url('Bariol_Regular_Webfont/bariol_regular-webfont.svg#webfont3AwWkQXK')格式(‘svg’);字体大小:普通;字体样式:正常;}

请注意,您应该使用font-url助手而不是css的url来解决Rails在预编译资产时所做的指纹操作。

最后,在CSS文件中设置字体系列。

代码语言:javascript
复制
body {
   font-family: 'Bariol Regular', serif;
} 

免费提示:可以这么说,性能方面最好的方法是用JS设置这些字体,以便异步加载这些字体。检查这个加载程序:https://github.com/typekit/webfontloader

票数 20
EN

Stack Overflow用户

发布于 2017-07-20 17:20:33

我在上面列出的方法上遇到了一些问题,因为产品css没有指向已编译的ttf字体,所以我成功地使用了从https://gist.github.com/anotheruiguy/7379570借用的替代方法。

  1. 将所有字体文件放置在assets/stylesheets/fonts中。例如assets/stylesheets/fonts/digital_7.ttf
  2. 我在我们使用的.scss文件中定义了以下内容: @字体-face{字体-系列:'Digital-7';src:资产-url(‘字体/数字_7.ttf’)格式(‘truetype’);字体-重量:普通;字体样式:普通};
  3. 我利用了其他.scss文件中的自定义字体: .数字字体{字体系列:'Digital-7',sans-serif;字体大小:40;}

这就是说,一个更干净的方法是将字体定义(本例中的digital_7_mono.ttf)放在一个单独的站点上。

如果您正在使用Cloudfront,例如,在一个名为my_path的Cloudfront目录中,上传您的字体文件,然后定义一个css文件(例如digital_fonts.css)

代码语言:javascript
复制
@font-face {
  font-family: 'Digital-7-Mono';
  font-weight: normal;
  font-style: normal;
  src: local('Digital 7 Mono'), local('Digital-7-Mono'), url('https://mycloudfront_site.com/my_path/digital_7_mono.ttf') format('truetype');
}

在html中,在<head>标记中添加:

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21250303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档