Javascript Vue.js错误“;找不到模块'/未定义'&引用;使用src=require()时从网页
我试图使用img标记中的src=”“从本地文件夹加载图像,但我想使用后端加载它们。前端已经有了相对路径,即“./assets/imgs/”后端只有名称和扩展名ex)“1.png”。问题是它确实有效,但我收到了错误消息 这给我带来了麻烦Javascript Vue.js错误“;找不到模块'/未定义'&引用;使用src=require()时从网页,javascript,image,vue.js,webpack,vue-cli,Javascript,Image,Vue.js,Webpack,Vue Cli,我试图使用img标记中的src=”“从本地文件夹加载图像,但我想使用后端加载它们。前端已经有了相对路径,即“./assets/imgs/”后端只有名称和扩展名ex)“1.png”。问题是它确实有效,但我收到了错误消息 这给我带来了麻烦 <img width=100px height=100px :src="getIconPath(`${user.icon}`)"/> 下面是我在控制台上收到的两条错误消息 [Vue warn]: Error in render: "Error: Ca
<img width=100px height=100px :src="getIconPath(`${user.icon}`)"/>
下面是我在控制台上收到的两条错误消息
[Vue warn]: Error in render: "Error: Cannot find module './undefined'"
found in
---> <Profile> at src/components/profile.vue
<Navbar> at src/components/navbar.vue
<Main> at src/main.vue
<Root> vue.runtime.esm.js:619
Error: "Cannot find module './undefined'"
webpackContextResolve .*$:13
webpackContext .*$:8
getIconPath profile.vue:74
render profile.vue:12
VueJS 43
<anonymous> main.js:31
js app.js:1415
__webpack_require__ app.js:785
fn app.js:151
1 app.js:1488
__webpack_require__ app.js:785
checkDeferredModules app.js:46
<anonymous> app.js:861
<anonymous>
[Vue warn]:呈现中出错:“错误:找不到模块。/未定义”
发现于
--->在src/components/profile.vue
在src/components/navbar.vue处
在src/main.vue处
vue.runtime.esm.js:619
错误:“找不到模块”“/undefined”“”
webpackContextResolve.*$:13
webpackContext.*$:8
getIconPath配置文件。vue:74
渲染配置文件。vue:12
VueJS 43
我将非常感谢你的帮助!!我已经在这件事上纠缠了好几个小时,似乎找不到一个有用的解决办法。如果这不是一个从后端加载图像的好方法,请随意建议其他方法。谢谢大家! 我想在这里猜测一下,user
是异步填充数据的。我敢打赌,您的初始数据或存储中有类似的内容
{
用户:{}
}
这里的问题是user.icon
是未定义的
,至少在一段时间内是这样。不必要地将其转换为字符串
getIconPath(`${user.icon}`)
将undefined
转换为字符串“undefined”
(因为JavaScript很有趣),因此会显示错误消息。简单的解决方案是不使用字符串模板,即
getIconPath(user.icon)
为了避免此类问题,我将使用computed属性来解析图像导入。这比在模板中执行每次勾选都会发生的方法更有效
计算:{
userWithIcon(){
返回{
…这个用户,
icon:this.user.icon&&require(`../assets/imgs/${this.user.icon}`)
}
}
}
在你的模板中
请不要将代码放在评论部分。还请提供所有相关信息,例如用户
(或它是图像
)数据的来源以及它的数据格式。谢谢,抱歉,这是我的第一次!我编辑了我的帖子,希望这更有意义。user
来自哪里?它是异步加载的吗?如果是,它的初始数据是什么样子的(在加载之前)?用户来自我的商店。我这样命名的。老实说,我不知道它是否异步加载。我正在使用axios连接到我的api,不知道这是否有用。实际上,正如您所提到的,我将其更改为getIconPath(user.icon)
,并且正在加载,没有任何错误消息!我刚刚把它写在下面作为一个答案啊,这现在很有意义!!!非常感谢。非常地有什么办法可以提高你的声誉吗?我很感激D@VictorDanielCampa不客气,你接受了我的回答,你已经给了我那些很好的声誉分数
[Vue warn]: Error in render: "Error: Cannot find module './undefined'"
found in
---> <Profile> at src/components/profile.vue
<Navbar> at src/components/navbar.vue
<Main> at src/main.vue
<Root> vue.runtime.esm.js:619
Error: "Cannot find module './undefined'"
webpackContextResolve .*$:13
webpackContext .*$:8
getIconPath profile.vue:74
render profile.vue:12
VueJS 43
<anonymous> main.js:31
js app.js:1415
__webpack_require__ app.js:785
fn app.js:151
1 app.js:1488
__webpack_require__ app.js:785
checkDeferredModules app.js:46
<anonymous> app.js:861
<anonymous>