为什么我的svg图片在vue-element-admin侧边栏引入不生效
时间: 2023-07-02 13:16:53 浏览: 283
可能是因为vue-element-admin默认使用的是fontawesome图标库,而不是svg图片。如果你想在侧边栏中使用svg图片,你需要修改侧边栏组件的代码,并将svg图片作为一个新的图标添加到图标库中。以下是一个可能的解决方案:
1. 将你的svg图片保存到项目中的某个目录下,比如`/src/icons/svg/`。
2. 在`/src/icons/index.js`文件中添加你的svg图片,例如:
```js
import SvgIcon from '@/components/SvgIcon.vue'
// require.context可以自动导入目录中所有文件
const req = require.context('./svg', false, /\.svg$/)
const requireAll = requireContext => requireContext.keys().map(requireContext)
requireAll(req)
// 将你的svg图片添加到图标库中
const requireMyIcon = require.context('./my-icons', false, /\.svg$/)
const requireMyAll = requireContext => requireContext.keys().map(requireContext)
requireMyAll(requireMyIcon)
```
3. 在`/src/layout/components/Sidebar/index.vue`文件中使用你的svg图片,例如:
```vue
<template>
<div class="sidebar-container" :class="{ 'is-mobile': isMobile }">
<el-scrollbar wrap-class="sidebar-scroll-wrapper">
<el-menu
:default-active="$route.path"
:unique-opened="true"
:collapse="isCollapse"
class="el-menu-vertical-demo sidebar-menu"
:background-color="sidebar.backgroundColor || '#ffffff'"
:text-color="sidebar.textColor || '#303133'"
:active-text-color="sidebar.activeTextColor || '#409EFF'"
:collapse-transition="false"
>
<sidebar-item
v-for="item in sidebar.items"
:key="item.path"
:item="item"
:is-mobile="isMobile"
:svg-icon="'my-icons/' + item.icon + '.svg'" <!-- 这里使用你的svg图片 -->
></sidebar-item>
</el-menu>
</el-scrollbar>
</div>
</template>
```
这样就可以在侧边栏中使用你的svg图片了。注意,如果你的svg图片没有正确显示,可能是因为它的尺寸或颜色不正确。你需要自行调整图片的尺寸和颜色,以适应侧边栏的样式。
阅读全文