0

我使用生成一个项目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>

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

Uncaught (in promise) 文件 /assets/icons/svg/telegram.svg 不是有效的 SVG。

svg 绝对有效!怎么修?

4

2 回答 2

2

我最近遇到了这个;正如莱昂纳多所说,这是由于新添加的 MIME 类型检查。出于某种原因,我的 SVG 文件被提供了Content-Type: text/html.

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

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

<md-icon :md-src="require('/assets/icons/svg/telegram.svg')" />
于 2019-04-14T18:57:32.120 回答
1

由于 mime 类型,这似乎是一个问题。 https://github.com/vuematerial/vue-material/pull/1942/commits/74c45f2150e7fc978e536dbc03549d0e8abff47c

于 2018-11-25T02:09:20.400 回答