【发布时间】:2020-01-10 05:45:38
【问题描述】:
我正在使用 Gatsby 和 React 开发一个网站。而且我发现每次刷新页面都会加载1.6MB/1.6MB的资源。我是 Web 开发的新手,所以我真的不知道这是要下载很多还是只是中等数量。
但是我确实注意到一个问题,即在我在 Netlify 上部署我的网站后,字体文件被请求两次,因此被下载了两次。 您可以在屏幕截图中看到请求了两个 Roboto-Light 文件。
这是我在代码库中包含字体文件的方式。
首先我设置了一个 webpack 别名 '@fonts': path.resolve(__dirname, 'src/fonts'),
然后在src/styles/fonts.js我有
import RobotoLight from '@fonts/Roboto/Roboto-Light.ttf';
export { RobotoLight};
终于在我的src/styles/GlobalStyle.js我有
import { createGlobalStyle } from 'styled-components';
const GlobalStyle = createGlobalStyle`
@font-face {
font-family: 'Roboto';
src: url(${fontFamilies.RobotoLight}) format('truetype');
font-weight: normal;
font-style: normal;
font-display: auto;
}
...
所以每当我需要应用此RobotoLight 字体时,我只需将元素的font-family 设置为Roboto。
我不知道为什么我的字体会被多次下载,也不知道这种包含字体的方式是否是最佳做法。另外我想知道1.6 MB / 1.6 MB resources是否太多了。
【问题讨论】:
标签: css reactjs fonts frontend gatsby