从 google 种字体中加载的字体过多
Too many fonts loading from google fonts
我只嵌入了 google 种字体中的一种字体。这是嵌入代码:
<link href="https://fonts.googleapis.com/css?family=Open+Sans&display=swap" rel="stylesheet">
但是如果我正在查看网络监视器,则会加载 3 个字体元素,以及 google 字体中的 1 个 css。
这是我得到的字体列表:
Status Method Domain File Cause Type Transfered Size
200 GET fonts.googleapis.com css?family=Open+Sans&display=swap stylesheet css 557 B 2.53 KB
200 GET fonts.gstatic.com mem8YaGs126MiZpBA-UFVZ0b.woff2 font woff2 14.04 KB 14.04 KB
200 GET fonts.gstatic.com mem8YaGs126MiZpBA-UFW50bbck.woff2 font woff2 11.05 KB 11.05 KB
200 GET fonts.gstatic.com mem8YaGs126MiZpBA-UFWp0bbck.woff2 font woff2 5.89 KB 5.89 KB
除此之外,我还附上了完整的字体列表 css。
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFUZ0bbck.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWZ0bbck.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVp0bbck.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWp0bbck.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFW50bbck.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVZ0b.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
这是为什么?
I have embedded only one font from google fonts. this is the embed code:
这是不正确的,您从字体 family 中嵌入了多种字体和字符集。字体不是单一的东西:
- 字体系列 ( Arial )
- 字体(Arial Regular)
- 字体(Arial 斜体)
- 字体(Arial 粗体)
- 字体(Arial 粗斜体)
每个字体然后进一步拆分为包含不同字符集的更多子文件。
如果我们查看 CSS 文件,将会加载多种字体。它们都实现了 Open Sans 字体的不同部分,特别是不同的字符集:
- Open Sans cyrillic-ext
- Open Sans 西里尔文
- Open Sans greek-ext
- Open Sans 希腊语
- Open Sans 越南语
- Open Sans latin-ext
- Open Sans latin
每个条目声明文件支持的 Unicode 字符范围。
例如,如果没有此文件,越南字符将不会呈现:
https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWp0bbck.woff2
如果没有这个文件,欧洲拉丁字符 space 中的字符将不会呈现:
https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVZ0b.woff2
同样,如果您选择了 斜体、粗体、粗体斜体等样式,每一个都会加一个文件。
最后,你没有告诉浏览器加载字体,你告诉浏览器加载样式表,样式表加载了字体,所以这是另一个额外的文件。
为什么不将它们捆绑到一个文件中?
这不会保存任何文件space 单独加载它们,并且 HTTP/1 它可能加载速度较慢,因为它不能并行传输。
但是,如果我纯用西里尔文编写网站,我真的需要在字体中使用越南字符吗?通过仅选择您打算使用的脚本,您可以节省带宽并加快字体加载。这就是为什么 Google 为每个脚本提供一个文件,而不是将它们全部捆绑到一个文件中。
由于 HTTP/2
,以这种方式传输大量小文件比传输单个大文件性能更好
我只嵌入了 google 种字体中的一种字体。这是嵌入代码:
<link href="https://fonts.googleapis.com/css?family=Open+Sans&display=swap" rel="stylesheet">
但是如果我正在查看网络监视器,则会加载 3 个字体元素,以及 google 字体中的 1 个 css。 这是我得到的字体列表:
Status Method Domain File Cause Type Transfered Size
200 GET fonts.googleapis.com css?family=Open+Sans&display=swap stylesheet css 557 B 2.53 KB
200 GET fonts.gstatic.com mem8YaGs126MiZpBA-UFVZ0b.woff2 font woff2 14.04 KB 14.04 KB
200 GET fonts.gstatic.com mem8YaGs126MiZpBA-UFW50bbck.woff2 font woff2 11.05 KB 11.05 KB
200 GET fonts.gstatic.com mem8YaGs126MiZpBA-UFWp0bbck.woff2 font woff2 5.89 KB 5.89 KB
除此之外,我还附上了完整的字体列表 css。
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFUZ0bbck.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWZ0bbck.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVp0bbck.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWp0bbck.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFW50bbck.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
font-display: swap;
src: local('Open Sans Regular'), local('OpenSans-Regular'), url(https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVZ0b.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
这是为什么?
I have embedded only one font from google fonts. this is the embed code:
这是不正确的,您从字体 family 中嵌入了多种字体和字符集。字体不是单一的东西:
- 字体系列 ( Arial )
- 字体(Arial Regular)
- 字体(Arial 斜体)
- 字体(Arial 粗体)
- 字体(Arial 粗斜体)
每个字体然后进一步拆分为包含不同字符集的更多子文件。
如果我们查看 CSS 文件,将会加载多种字体。它们都实现了 Open Sans 字体的不同部分,特别是不同的字符集:
- Open Sans cyrillic-ext
- Open Sans 西里尔文
- Open Sans greek-ext
- Open Sans 希腊语
- Open Sans 越南语
- Open Sans latin-ext
- Open Sans latin
每个条目声明文件支持的 Unicode 字符范围。
例如,如果没有此文件,越南字符将不会呈现:
https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFWp0bbck.woff2
如果没有这个文件,欧洲拉丁字符 space 中的字符将不会呈现:
https://fonts.gstatic.com/s/opensans/v17/mem8YaGs126MiZpBA-UFVZ0b.woff2
同样,如果您选择了 斜体、粗体、粗体斜体等样式,每一个都会加一个文件。
最后,你没有告诉浏览器加载字体,你告诉浏览器加载样式表,样式表加载了字体,所以这是另一个额外的文件。
为什么不将它们捆绑到一个文件中?
这不会保存任何文件space 单独加载它们,并且 HTTP/1 它可能加载速度较慢,因为它不能并行传输。
但是,如果我纯用西里尔文编写网站,我真的需要在字体中使用越南字符吗?通过仅选择您打算使用的脚本,您可以节省带宽并加快字体加载。这就是为什么 Google 为每个脚本提供一个文件,而不是将它们全部捆绑到一个文件中。
由于 HTTP/2
,以这种方式传输大量小文件比传输单个大文件性能更好