svg渲染失败/svg页面已经占位但是看不见/svg有高度 use高度为0

今天封装vue的svg-icon组件,在渲染的时候遇到的问题。

<svg-icon class-name="store" icon-class="store" />

代码很简单,但是效果没出来,大概是这样的

 

 

 可以发现svg是有宽高的,但是里面的use标签却没有。

参考之前写的项目,发现是少了个插件  svg-sprite-loader ,可以安装一下,然后需要在vue.config.js中添加配置。

// 加在头部
const path = require('path')


function resolve (dir) {
  return path.join(__dirname, dir)
}

// 加在 module.exports 中

 chainWebpack (config) {
    config.plugins.delete('prefetch')

    // set svg-sprite-loader
    config.module
      .rule('svg')
      .exclude.add(resolve('src/icons'))
      .end()
    config.module
      .rule('icons')
      .test(/\.svg$/)
      .include.add(resolve('src/icons'))
      .end()
      .use('svg-sprite-loader')
      .loader('svg-sprite-loader')
      .options({
        symbolId: 'icon-[name]'
      })
      .end()
    }

配置完成后项目需要重启一下,然后效果

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值