问题描述
在HTTPS协议下,IE浏览器某些类型的电脑无法显示字体图标
解决方案
webpack打包配置中使用了url-loader,将小于固定大小(limit)的文件打包成base64的DataURL,将对woff、eot、ttf、otf的处理limit限制修改为0(也就是不处理)
修改脚手架默认配置
{
...,
chainWebpack: config => {
// 解决字体图标丢失
config.module
.rule(\'fonts\')
.use(\'url-loader\')
.tap(options => {
return {
...options,
limit: 0 // 这个数值可以设置为很大,很大的话,打包之后的dist文件夹中就不会出现fonts目录了,因为这个时候所有的字体文件都被转成base64放到css文件中了
}
})
}
...
}
查看font的规则
PS F:\sourceCode> vue inspect --rule fonts
/* config.module.rule(\'fonts\') */
{
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/i,
use: [
{
loader: \'F:\\HK\\project\\HR-ORG-WORKFLOW\\sourceCode\\node_modules\\url-loader\\dist\\cjs.js\',
options: {
limit: 0,
fallback: {
loader: \'F:\\HK\\project\\HR-ORG-WORKFLOW\\sourceCode\\node_modules\\file-loader\\dist\\cjs.js\',
options: {
name: \'static/fonts/[name].[hash:8].[ext]\'
}
}
}
}
]
}
原因分析
暂无