2016-01-26 4 views
2

В одном из моих компонентов я пытаюсь загрузить изображение svg, но vuejs/webpack терпит неудачу.Vuejs не загружает изображение svg?

Вот мой код:

<template> 
    <img src="../../assets/public/images/sad.svg" /> 
</template> 

<script> 
export default {} 
</script> 

И ошибка:

ОШИБКА в ./src/assets/public/images/sad.svg
модуль синтаксического анализа не удалось: /дома/cabox/workspace/src/assets/public/images/sad.svg Строка 1: Неожиданный токен < Для обработки этого типа файла вам может понадобиться соответствующий загрузчик .
|
|
| @ ./~/vue-html-loader!./~/vue-loader/lib/selector.js?type=template & index = 0! ./ src/components/tooltip.vue 1: 205-258 1: 592-645

Из того, что я понимаю, Vuejs (или Webpack) пытается интерпретировать содержимое .svg. И это не то, что я хочу.

Вот мой WebPack конфигурации для SVG:

{ test: "\.svg", loader: "file-loader?mimetype=image/svg+xml" }, 

Спасибо за вашу помощь.

+0

Можете ли вы открыть файл в браузере? Я бы сказал, что это проблема Webpack, а не VueJS. – Andrius

+0

Да, файл можно загрузить. И это также правильный путь, поскольку сообщение об ошибке содержит начало файла. –

+0

Вы можете попробовать использовать 'svg-loader' вместо' file-loader'. – Andrius

ответ

4

Это один работает для меня:

{test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=image/svg+xml'} 

Его регулярное выражение для обработки любого файла с расширением SVG как статический ресурс так, как вы ищете.

Я использую его с другими шрифтами погрузчиками для начальной загрузки или других glyphfonts:

{test: /\.(woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/font-woff'}, 
{test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=application/octet-stream'}, 
{test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: 'file'}, 
{test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: 'url?limit=10000&mimetype=image/svg+xml'} 

Используя это регулярное выражение, вероятно, можно изменить загрузчик в файл и INLINE его, как вы использовали.

+0

Удивительно, что сработало для меня. Теперь я должен понять, почему он помещает мои файлы в dist/dist/вместо dist/... –

Смежные вопросы