Как я обнаружил, лучший способ сделать это - предварительно загрузить таблицу стилей, которая содержит шрифт, а затем позволить браузеру загружать его автоматически. Я использовал font-face в других местах (на html-странице), но затем я мог кратко наблюдать эффект изменения шрифта.
<link href="fonts.css?family=Open+Sans" rel="preload stylesheet" as="style">
затем в файле font.css укажите следующее.
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: local('Open Sans Regular'), local('OpenSans-Regular'),
url('open-sans-v16-latin-regular.woff2') format('woff2'); /* Super Modern Browsers */
}
Вы не можете назначить имя шрифту, когда оно предварительно загружено через тег ссылки (поправьте меня, если я ошибся, я пока не могу найти способ), и поэтому вам нужно использовать font-face, чтобы назначить имя шрифт. Даже если можно загрузить шрифт с помощью тега ссылки, это не рекомендуется, поскольку вы не можете присвоить ему имя шрифта. Без имени, как у font-face, вы не сможете использовать его нигде на веб-странице. Согласно gtmetrix, таблица стилей загружается в начале, затем остальные сценарии / стили по порядку, затем шрифт перед загрузкой dom, и поэтому вы не видите эффекта изменения шрифта.