代码是
报错显示为是Module not found: Error: Can't resolve '@assets/imgs/img.png' in 'E: \shopping-manager\vue\src\views\front'
代码是
报错显示为是Module not found: Error: Can't resolve '@assets/imgs/img.png' in 'E: \shopping-manager\vue\src\views\front'
关注本答案参考 多次询问 ChatGPT-3.5 后选择的最佳回答,若是满意,还请采纳,谢谢
问题分析
@通常是src目录的别名,如果路径解析不正确,就会出现这种找不到模块的错误。可能的解决方案
检查路径别名配置
在Vue项目中,如果使用了@作为src目录的别名,需要确保Webpack(或Vite,取决于项目构建工具)的配置正确。
如果是Webpack项目,在vue.config.js(如果有)或者项目的webpack.config.js中,应该有类似如下的别名配置:
const path = require('path');
module.exports = {
chainWebpack: config => {
config.resolve.alias
.set('@', path.resolve(__dirname,'src'));
}
};
如果是Vite项目,在vite.config.js中,配置如下:
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin - vue';
import path from 'path';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
'@': path.resolve(__dirname,'src')
}
}
});
检查图片路径
src/assets/imgs/img.png,在组件中引用时,相对路径应该是@/assets/imgs/img.png(假设@是src的别名)。Home.vue组件中,如果是在<template>中引用图片,例如:<template>
<img src="@/assets/imgs/img.png" alt="示例图片">
</template>
<script>中通过JavaScript动态设置图片源,例如:import imgUrl from '@/assets/imgs/img.png';
export default {
data() {
return {
imgSrc: imgUrl
};
}
};
src/assets/imgs这个目录结构存在,并且img.png文件确实存在于该目录下。