目前,移动性能工具报告我的网站得分非常糟糕,因为某些字体文件在网站几乎完全初始化后加载得很晚。此工具建议我使用rel="preload"
链接来预加载这些字体文件。问题是在生产环境中,Angular的文件名包含内容哈希,因此my-font.woff
变得my-font.<some-hash>.woff
。
有没有办法规避这一点并预加载my-font.<some-hash>.woff
,而不禁用文件哈希,因为文件哈希在检测陈旧的缓存文件时提供了一些优势。
根据您的要求,您应该选择预加载-webpack-plugin。
按照文档了解有关其工作的更多信息。
在你的场景中,它可以像这样使用——
plugins: [
new HtmlWebpackPlugin(),
new PreloadWebpackPlugin({
rel: 'preload',
as(entry) {
if (/.woff$/.test(entry)) return 'font';
}
})
]
您必须将此插件和此代码分别添加到应用程序和 Webpack 配置中。希望这有帮助!!