ruby-on-rails - 在 Rails 应用程序中字体加载缓慢。为什么会这样?
问题描述
我的app/assets/fonts
文件夹中有一个自定义字体,但在生产中,字体正在缓慢加载,在字体呈现如下之前将按钮留空:
然后在 3 秒后,这个:
到底是怎么回事?我能做些什么?
我的CSS看起来像这样:
@font-face {
font-family: 'Reckless-Medium';
src: font-url('Reckless-Medium.otf') format('opentype');
font-weight: normal;
font-style: normal;
}
$reckless-medium: 'Reckless-Medium';
和这个:
.btn {
display: inline-block;
font-size: 15px;
font-family: $reckless-medium;
为什么 rails 会发出 get 请求来获取字体?
Started GET "/assets/Reckless-Medium.otf" for 127.0.0.1 at 2018-10-19 00:53:29 -0400
字体是否位于另一台服务器上?
解决方案
为什么 rails 会发出 GET 请求来获取字体?
因为你告诉它这样做。font-url('Reckless-Medium.otf')
最终命令客户端的浏览器从您的网络服务器下载字体。
字体是否位于另一台服务器上?
没有把握。我看到您使用的字体是自定义的。我在https://befonts.com/reckless-font.html上找到了它。为了快速加载,它可以上传到某些 CDN 服务器上,例如 Google 或 CloudFlare,并通过硬链接从那里下载。但它太新了,所以它是否流行到足以让 CDN 专业人士接受它到他们的仓库中是值得怀疑的。
要使字体(和所有静态内容)加载得更快,您可以将静态文件移动到某个 CDN 服务。例如,检查https://www.cloudflare.com/作为选项。
推荐阅读
- flutter - 我是否必须为一个字段同时创建 getter 和 setter?
- laravel - 通过回答安全问题手动重置密码 - Laravel
- mysql - mysql减去多个表不能正常工作
- azure-table-storage - 没有 sql db azure 表中的 sql 注入
- python - 在 django 中导入模块
- java - 通过 redmine-java-api 仅列出打开的 redmine 项目
- mongodb - 如何计算 docker 容器中的 WiredTiger 缓存大小?
- vue.js - 使用 vue.js 和 laravel 创建无限滚动时的无限循环
- java - 为什么 .java 文件不能在 IDEA 中正确显示?
- c - 在手臂皮质上使用 GCC 引发对 __aeabi_fxxx 函数的长时间调用