vue项目在生产环境请求ttf文件如何使用缓存并使用font-face方式加载字体
在生产环境中,可以使用webpack的file-loader将ttf文件打包到静态资源文件夹中,然后通过@font-face方式加载字体。
- 使用file-loader将ttf文件打包到静态资源文件夹中
在webpack的配置文件中,添加以下loader:
{
test: /\.(woff|woff2|eot|ttf|otf)$/,
use: [
{
loader: 'file-loader',
options: {
name: '[name].[ext]',
outputPath: 'fonts/'
}
}
]
}
这样,webpack在打包时会将所有ttf文件复制到静态资源文件夹中的fonts文件夹下。
- 使用@font-face方式加载字体
在CSS文件中,可以使用@font-face方式加载字体。例如:
@font-face {
font-family: 'MyFont';
src: url('../fonts/MyFont.ttf') format('truetype');
font-weight: normal;
font-style: normal;
}
这样,就可以在CSS中使用MyFont字体:
body {
font-family: 'MyFont', Arial, sans-serif;
}
- 使用缓存
为了使字体文件能够被浏览器缓存,可以在文件名中加入hash值,例如:
{
loader: 'file-loader',
options: {
name: '[name].[hash:8].[ext]',
outputPath: 'fonts/'
}
}
这样,每次打包时,文件名都会变化,从而强制浏览器重新下载文件。如果文件内容没有变化,浏览器就会从缓存中加载文件,加快页面加载速度
原文地址: https://www.cveoy.top/t/topic/g8pn 著作权归作者所有。请勿转载和采集!