Loading

elementUI字体图标在https下,ie浏览器无法显示

问题描述

在HTTPS协议下,IE浏览器某些类型的电脑无法显示字体图标

解决方案

webpack打包配置中使用了url-loader,将小于固定大小(limit)的文件打包成base64的DataURL,将对woff、eot、ttf、otf的处理limit限制修改为1024 * 1000(也就是将小于1M的字体文件以base64打包到css中)

修改脚手架默认配置

{
  ...,
  chainWebpack: config => {
    // 解决字体图标丢失
    config.module
      .rule('fonts')
      .use('url-loader')
      .tap(options => {
        return {
          ...options,
          limit: 1024 * 1000 // 这个数值可以设置为很大,很大的话,打包之后的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]'
          }
        }
      }
    }
  ]
}

原因分析

暂无

posted @ 2019-12-06 10:07  Frank-Link  阅读(1467)  评论(0编辑  收藏  举报