Для разрешения путей к SVG файлам в проекте на Vue.js можно использовать несколько подходов. Ниже я приведу несколько способов, как это можно сделать:
- Импорт SVG как компонента:
- Создайте директорию
assets
внутри папкиsrc
. - Поместите в нее ваш SVG файл, например,
icon.svg
. - В компоненте, в котором вы хотите отобразить SVG, импортируйте его следующим образом:
import Icon from '@/assets/icon.svg';
- В шаблоне используйте импортированный компонент:
<template> <div> <Icon /> </div> </template>
- Использование URL:
- Установите svg-url-loader, если его еще нет в проекте:
npm install svg-url-loader --save-dev
- Добавьте следующие строки в файл
vue.config.js
:
module.exports = { chainWebpack: config => { const svgRule = config.module.rule('svg'); svgRule.uses.clear(); svgRule .use('svg-url-loader') .loader('svg-url-loader'); } };
- Теперь вы можете использовать SVG файлы следующим образом:
<template> <div> <img src="@/assets/icon.svg" alt="Icon" /> </div> </template>
- Использование Webpack alias:
- В файле
vue.config.js
добавьте alias для папки с SVG файлами:
module.exports = { configureWebpack: { resolve: { alias: { '@svg': path.resolve(__dirname, 'src/assets/svg/') } } } };
- Теперь можно импортировать SVG файлы следующим образом:
import Icon from '@svg/icon.svg';
Выберите подход, который лучше всего соответствует вашим потребностям и архитектуре проекта. Каждый из этих методов имеет свои достоинства и может быть использован в зависимости от конкретной ситуации.