带有自定义svg图标的vue材质不起作用md-src

时间:2018-11-18 20:37:35

标签: vue.js vue-cli vue-material

我使用vue-cli生成一个项目,然后运行vue add vue-material。 然后我添加MdButton并在浏览器中签入

// work
<md-button class="md-icon-button">button</md-button>

然后我添加MdIcon并在浏览器中签入

// not work
<md-button class="md-icon-button">
    <md-icon md-src="/assets/icons/svg/telegram.svg"></md-icon>
</md-button>

编译成功,但是浏览器中出现错误

  

未捕获(已承诺)/assets/icons/svg/telegram.svg文件不是   有效的SVG。

svg绝对有效!如何解决?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我最近遇到了这个问题;正如Leonardo所说的,这是由于新增了MIME类型检查。由于某些原因,我的SVG文件已被Content-Type: text/html提供。

要解决此问题,我不得不更改图标以使用require,(如果我理解正确的话),这会使它通过Webpack中的另一个加载器,该加载器修复了MIME类型。 (有关更多信息,请参见here。)以OP的示例为例,我将进行更改:

<md-icon md-src="/assets/icons/svg/telegram.svg" />

<md-icon :md-src="require('/assets/icons/svg/telegram.svg')" />