Для разрешения путей к SVG файлам в проекте на Vue.js можно использовать несколько подходов. Ниже я приведу несколько способов, как это можно сделать:
1. **Импорт SVG как компонента**:
- Создайте директорию assets
внутри папки src
.
- Поместите в нее ваш SVG файл, например, icon.svg
.
- В компоненте, в котором вы хотите отобразить SVG, импортируйте его следующим образом:
import Icon from '@/assets/icon.svg';
- В шаблоне используйте импортированный компонент:
<template> <div> <Icon /> </div> </template>
2. **Использование 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>
3. **Использование 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';
Выберите подход, который лучше всего соответствует вашим потребностям и архитектуре проекта. Каждый из этих методов имеет свои достоинства и может быть использован в зависимости от конкретной ситуации.