我使用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绝对有效!如何解决?
答案 0 :(得分:1)
似乎是一个哑剧类型造成的问题。 https://github.com/vuematerial/vue-material/pull/1942/commits/74c45f2150e7fc978e536dbc03549d0e8abff47c
答案 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')" />